erreurs de type Symbol(s) not found for architecture x86_64”

erreurs de type Symbol(s) not found for architecture x86_64”

by Jules Amédée Arislobule Schadt -
Number of replies: 4

Bonjour,

En faisant les liens dans QT de tous mes fichiers, j'ai ces 2 messages d'erreur qui apparaissent:

"Symbol(s) not found for architecture x86_64”

"linker command failed with exit code 1 (use -v to see invocation)"


 ils apparaissent slmnt dans la compilation des dossiers QT_GL et TEXT. Savez-vous comment je peux les corriger?

Merci d avance 

Jules Schadt

Attachment Capture d’écran 2020-05-03 à 10.12.35.png
In reply to Jules Amédée Arislobule Schadt

Re: erreurs de type Symbol(s) not found for architecture x86_64”

by Deleted user -

Je suppose que tu essayes de compiler l'exercice 5 sans aucune modification (au vu de la référence à Contenu::evolue). As-tu bien appelé qmake, puis make dans le répertoire ex_05 (et pas dans general, text ou qt_gl)?

Ces trois répertoires sont dépendants; compiler seulement text ou qt_gl échouera.

In reply to Deleted user

Re: erreurs de type Symbol(s) not found for architecture x86_64”

by Jules Amédée Arislobule Schadt -

J’ai modifié l’exo 5 pour remplacer certains fichiers par les miens, faire les liens entre mes fichiers, etc…

Ensuite j’ai fait qmake qui fonctionne, puis make et compiler et là apparaissent les erreurs 
Pour essayer, j’ai compilé GENERAL, QT_GL  et TEXT séparément et seul QT_GL ne compile pas… il envoie les mêmes erreurs.

In reply to Jules Amédée Arislobule Schadt

Re: erreurs de type Symbol(s) not found for architecture x86_64”

by Deleted user -
Essaye de supprimer tes fichiers .o et de recompiler.
Si cela ne marche pas, as-tu choisi de remplacer complètement la classe Contenu? Si oui, c'est qu'il doit rester une référence à cette classe quelque part. Dans l'exercice 5 d'origine, elle se trouvent à ces lignes (et possiblement dans le corps de certaines méthodes de glwidget).

ex_05/text/text_viewer.h:14:  virtual void dessine(Contenu const& a_dessiner) override;
ex_05/text/text_viewer.cc:5:void TextViewer::dessine(Contenu const& a_dessiner)
ex_05/text/main_text.cc:9:  Contenu c(&ecran);
ex_05/Qt_GL/vue_opengl.h:11:  virtual void dessine(Contenu const& a_dessiner) override;
ex_05/Qt_GL/glwidget.h:43:  Contenu c;
ex_05/Qt_GL/vue_opengl.cc:6:void VueOpenGL::dessine(Contenu const& a_dessiner)
ex_05/general/support_a_dessin.h:4:class Contenu;
ex_05/general/support_a_dessin.h:11:  virtual void dessine(Contenu const& a_dessiner) = 0;
ex_05/general/contenu.h:7:class Contenu : public Dessinable {
ex_05/general/contenu.h:9:  Contenu(SupportADessin* vue)
ex_05/general/contenu.h:12:  virtual ~Contenu() {}
ex_05/general/contenu.cc:4:void Contenu::evolue(double dt)
In reply to Deleted user

Re: erreurs de type Symbol(s) not found for architecture x86_64”

by Jules Amédée Arislobule Schadt -

Effectivement, il y a encore des références à cette classe (que j'ai de fait supprimée) dans les fichiers vue_opengl et glwidget mais en changeant cette classe "contenu" de ces fichiers par une de mes classes, ce message apparait. C'est assurément un problème de liens entre les fichiers mais je ne sais pas comment le corriger...

Attachment Capture d’écran 2020-05-03 à 13.39.17.png