Quelques commentaires:
1) array_length en life.h doit être externed
2) Toutes les variables externed (largeur, hauteur, les tiques, les count_array, change_array, error_check, algorithm_length, array_length) besoin d'être défini quelque part.
Dans votre code, vous avez essentiellement dit au compilateur que ces variables existent quelque part mais ne les ont pas réellement placées n'importe où. Dans l'un de vos fichiers .cpp dans la portée globale vous devez mettre:
unsigned short int width;
unsigned short int height;
unsigned long int ticks;
unsigned short int count_array[10923][10923];
bool change_array[10923][10923];
int error_check;
unsigned long int algorithm_length;
unsigned long int array_length;
Quelle est exactement la même chose que ce que vous avez à life.h, sauf sans le mot-clé extern. Cela créera réellement les variables, par opposition à maintenant où elles n'ont aucune implémentation concrète.
Si vous apportez les modifications, je suggère que votre code soit compilé (testé avec gcc). Cela étant dit, l'erreur réelle que vous voyez n'a pas de sens.
@Tim: 'Définir', pas 'déclarer'. –
Définissez-vous les variables dans chaque fichier? c'est votre problème le plus probable – Tim