Bonjour à tous.
Je suis en train de lire le livre Accelerated C++. Je bloque sur l'exo 5-2. Je l'ai résolu, mais pas comme je le voudrais. Et je risque de rencontrer le même problème plusieurs fois par la suite.
Je peux compiler le programme quand je mets tout le code dans un seul fichier (main-tout-en-un.cc), mais pas quand les fichiers sont dispersés (main.cc avec d'autres *.cc et *.h). Pourtant j'ai appris à utiliser la directive #ifndev...
La compilation de main-tout-en-un.cc me renvoie:
À ce que je comprends, les fichiers sont bien importés, mais les fonctions ne sont pas trouvées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /tmp/ccLLVYvA.o: In function `main': main.cc:(.text+0xc0): undefined reference to `read(std::basic_istream<char, std::char_traits<char> >&, Student_info&)' main.cc:(.text+0xf0): undefined reference to `extract_fails(std::vector<Student_info, std::allocator<Student_info> >&)' main.cc:(.text+0x10d): undefined reference to `compare(Student_info const&, Student_info const&)' main.cc:(.text+0x138): undefined reference to `compare(Student_info const&, Student_info const&)' main.cc:(.text+0x252): undefined reference to `grade(Student_info const&)' collect2: ld a retourné 1 code d'état d'exécution
J'ai ajouté des petites infos au tout début des fichiers main*.cc (commande de compilation, logs, commande d'exécution). L'archive est en pièce-jointe. Je ne pense pas qu'il faille vraiment comprendre le code et le lire attentivement pour résoudre le problème. Enfin, j'espère, car sinon je n'aurais aucune chance d'avoir une réponse.
Partager