Undifined reference

Undifined reference

by Clara Emilie Nicole Wetzel -
Number of replies: 3

Bonjour, après avoir vérifié plusieurs fois mon makefile ainsi que les fautes de frappes potentielles des noms données à mes modules, mon problème persiste. Dans le module noeud.cc dans lequel j'ai inclut tools.h ainsi que error.h, je peux appeler des structures crées dans tools.h mais dès lors que j'appelle des fonctions dans noeud dont le prototype est écrit dans tools.h mais dont la définition est écrite dans tools.cc,  le programme me renvoie la même erreur de undefined référence. De même lorsque j'appelle des fonctions du module error.

Le message exact est noeud.cc :(.text +0x2b : undefined référence to "nom de ma fonction"

collect2: error: ldturned 1 exit status

Merci d'avance de votre aide

In reply to Clara Emilie Nicole Wetzel

Re: Undifined reference

by Ronan Boulic -

est-ce que tools.o est dans la liste des fichiers objets utilisés pour construire l'exécutable ?

vérifier dans le Makefile

In reply to Ronan Boulic

Re: Undifined reference

by Clara Emilie Nicole Wetzel -

je viens de vérifier, oui il y est (dans la ligne OFILES avec tous les autres .o)

In reply to Clara Emilie Nicole Wetzel

Re: Undifined reference / préciser le namespace

by Ronan Boulic -

les fonctions de error sont définies dans un namespace qui s'appelle aussi error comme on peut le voir dans l'interface error.h .

pour appeler une fonction de error, il faut préciser le namespace avec l'opérateur de résolution de portée comme indiqué au début du rendu1. Par exemple:

error::identical_uid(...)

une alternative (moins élégante) est d'ajouter ceci au début de l'implémentation du module qui veut appeler les fonctions du module error:

using namespace error ;

le problème est probalement de même nature pour tools.