Bonjour,
Commençant à être habitué aux erreurs de type "variable externe non définie", je voudrais fixer les choses une bonne fois pour toutes.
Que peut signifier myFile.c/h/a : undefined reference to 'myVarOrFunction' :
- Variable ou fonction non déclarée (le plus souvent, fichier d'include manquant) ?
- Variable ou fonction déclarée (le plus souvent, dans un fichier d'include, mais non définie (le plus souvent, librairie ou code source C manquant) ?
Remarque : sous Visual C++, je crois savoir qu'on peut effectuer la distinction entre les deux :
- Undeclared identifier signifie "variable non déclarée" (ou, le plus souvent, fichier d'include manquant)
- Unresolved external symbol signifie "variable non définie" (ou, le plus souvent, librairie ou code C manquant)
J'en profite pour poser une deuxième question qui est le problème que je dois résoudre actuellement.
Essayant de compiler Valgrind sous RedHat EL6, je suis confronté à l'erreur suivante :
/usr/lib/libdl.so : undefined reference to `_dl_tls_get_addr_soft@GLIBC_PRIVATE'.
Quel peut-être le problème ? Manque-t-il un fichier d'include quelque part ? Ou une librairie statique ? Ou une librairie dynamique ?
Merci à tous pour vos réponses.
Partager