Undefined reference to... un objet non appelé - C++ - Programmation
Marsh Posté le 24-04-2018 à 09:32:39
Je pressens pas mal de warnings, tu as regardé ?
Et
NeuralNetwork neurones();
C'est sensé faire quoi ?
Marsh Posté le 24-04-2018 à 17:06:35
TotalRecall a écrit : Je pressens pas mal de warnings, tu as regardé ? |
Pas de warnings : le message d'erreur complet est
Build file: "no target" in "no project" (compiler: unknown)
C:\[...]\TP3\test.o:test.cpp.text.startup+0xe4) undefined reference to `NeuralNetwork::NeuralNetwork(std::vector<int, std::allocator<int> > )'
error: ld returned 1 exit status
Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s))
Et la ligne "NeuralNetwork neurones();" est (normalement) un appel du constructeur par défaut. Ca n'est pas la bonne syntaxe?
Autre chose, découverte depuis hier soir, en copiant la totalité du code de NeuralNetwork.cpp dans le fichier principal, avant le main, ça compile sans problème. J'ai l'impression que l'IDE ne reconnait pas le fichier NeuralNetwork.cpp : si je déplace les deux fichiers hors du répertoire courant, j'ai un message d'erreur différent ("NeuralNetwork.hpp, no such file or directory" ), mais si je déplace simplement NeuralNetwork.cpp, c'est le message d'erreur initial qui apparait. Est-ce qu'il manquerait une option ou une directive de compilation ?
Marsh Posté le 24-04-2018 à 18:24:51
>(compiler: unknown)
Ça ça me paraît douteux, t'es sûr que c'est pas un problème de config de ton IDE? Tu peux compiler d'autres projets?
Marsh Posté le 24-04-2018 à 18:30:04
Oui, c'est aussi l'impression que j'ai, que c'est au niveau du gestionnaire de projet qu'il y a problème.
A+,
Marsh Posté le 23-04-2018 à 21:06:17
Bonjour,
Je teste actuellement le code C++ ci-dessous. Pour résumer, est implémentée une classe NeuralNetwork avec 4 attributs et 2 constructeurs, un par défaut et l'autre prenant un vector<int> en argument, et le main a pour seule utilité de tester le bon fonctionnement de ces constructeurs.
Main :
NeuralNetwork.h :
NeuralNetwork.cpp :
Ce code échoue à la compilation, en me renvoyant "undefined reference to `NeuralNetwork::NeuralNetwork(std::vector<int, std::allocator<int> >". J'ai d'abord creusé sur le code en lui-même, sans vraiment trouver de solution, et ai fini par demander à un ami de repasser dessus. Hors, chez lui, le code compile et tourne sans souci. Après répétition de l'expérience chez quelqu'un d'autre, de nouveau le code fonctionne.
Le message d'erreur sous-entends que je fais appel à un objet que j'ai pourtant pas l'impression d'appeler (enfin... je ne vois pas ce que le std::allocator<int> vient faire ici), et le problème semble venir de mon poste. Est-ce que ça serait un des réglages du compilateur ou de l'IDE (j'utilise CodeBlocks sous Windows)? J'avoue ma totale incompétence sur ces sujets... Si quelqu'un a une idée de l'origine du problème, je suis preneur de tout conseil ou astuce!
Merci d'avance