Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/12/2006, à 17:06

CasseTaTele

Erreur de compilation référence indéfinie

Bonjour,

j'ai un bug à la compilation et j'arrive pas à me dépétrer.
voici une partie de l'erreur qui m'ennuie :

/usr/local/digiclops/lib/libdigiclops.a(pgrcameralistener.o): In function `std::list<PGRCamera*, std::allocator<PGRCamera*> >::_M_create_node(PGRCamera* const&)':
pgrcameralistener.cpp:(.gnu.linkonce.t._ZNSt4listIP9PGRCameraSaIS1_EE14_M_create_nodeERKS1_+0x9): référence indéfinie vers « std::__default_alloc_template<true, 0>::allocate(unsigned int)»

j'ai plusieurs erreurs du meme style à chaque fois j'ai des référence indéfinies vers une de ces fonctions :

std::__default_alloc_template<true, 0>::allocate(unsigned int)
std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)

Le problème c'est que ça plante sur des librairies de la caméra que j'utilise et dont je ne maitrise pas le code.
j'ai fais un 'nm' de libdigiclops.a et j'obtiens :

sebastien@sebastien-desktop:/usr/local/digiclops/lib$ nm -o -C libdigiclops.a | grep allocate
libdigiclops.a:digi-cam.o:         U std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)
libdigiclops.a:digi-cam.o:         U std::__default_alloc_template<true, 0>::allocate(unsigned int)
libdigiclops.a:digi-grab.o:         U std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)
libdigiclops.a:digi-grab.o:         U std::__default_alloc_template<true, 0>::allocate(unsigned int)
libdigiclops.a:pgrcameralistener.o:         U std::__default_alloc_template<true, 0>::deallocate(void*, unsigned int)
libdigiclops.a:pgrcameralistener.o:         U std::__default_alloc_template<true, 0>::allocate(unsigned int)

Le 'U' signifie que le lien n'est pas définie, mais comment savoir ou se trouve cette fonction qui semble manquer ? comment résoudre ce problème ? Quelques pistes ?

Hors ligne

#2 Le 21/12/2006, à 18:41

CasseTaTele

Re : Erreur de compilation référence indéfinie

Je crois qu'il me manque le fichier 'stl_alloc.h' ...
du moins il n'est pas dans /usr/include/bits mais dans /usr/include/g++-3

j'ai essayé différentes versions de gcc ...
dans /usr/lib je vois pas quelle librairie pourrait etre la librairie stl...

Faut t'il ré-installer un package (si oui lequel)?

Dernière modification par CasseTaTele (Le 21/12/2006, à 18:49)

Hors ligne

#3 Le 22/12/2006, à 12:00

CasseTaTele

Re : Erreur de compilation référence indéfinie

J'ai installé plusieurs versions de libstdc++ , mais je sais pas si il pointe dessus...

sebastien@sebastien-desktop:/usr/lib$ ls libst*
libstartup-notification-1.so.0      libstdc++-3-libc6.2-2-2.10.0.so  libstdc++.so.5      libstdc++.so.6.0.8
libstartup-notification-1.so.0.0.0  libstdc++-libc6.2-2.a.3          libstdc++.so.5.0.7  libstlport_gcc.so.4.6
libstdc++-3-libc6.2-2-2.10.0.a      libstdc++-libc6.2-2.so.3         libstdc++.so.6

J'ai lu que les librairies standard étaient inclus dans gcc donc pourquoi j'obtiens ces erreurs...?

Hors ligne

#4 Le 24/12/2006, à 01:34

gene69

Re : Erreur de compilation référence indéfinie

/usr/local/digiclops/lib/libdigiclops.a(pgrcameralistener.o): In function `std::list<PGRCamera*, std::allocator<PGRCamera*> >::_M_create_node(PGRCamera* const&)':
pgrcameralistener.cpp:(.gnu.linkonce.t._ZNSt4listIP9PGRCameraSaIS1_EE14_M_create_nodeERKS1_+0x9): référence indéfinie vers « std::__default_alloc_template<true, 0>::allocate(unsigned int)»

n'est ce pas là tout juste une erreur de type?


Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion

Hors ligne