|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() |
Bonjour,
J'aimerais savoir quelle est la différence entre "undefined reference" et "undefined symbol". Je sais que undefined reference c'est quand le linker ne trouve pas l'endroit ou est défini la fonction mais undefined symbol c'est quoi alors ? Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Ingénieur systèmes embarqués Inscription : juin 2009 Messages : 1 698 ![]() |
Quel compilateur utilises-tu ? As-tu un exemple de code générant le message "undefined symbol" ? Je n'ai pas du tout l'habitude de le voir, perso.
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^ Pour vos problèmes d'embarqué, utilisez le forum dédié ! |
|
00
|
|
|
#3 | ||||
|
Membre actif
![]() |
J'ai complié mon code et généré un executable sur ma machine (Ubuntu 10.04 - x86_64). J'ai copié l'exécutable sur une autre machine Debian (Debian GNU/Linux 5.0 - x86_64) afin de le lancer dessus.
Sur ma machine, j'ai gcc 4.4.3: Code :
Code :
Code :
symbol lookup error: /home/moimeme/monappli/bin/test_exe: undefined symbol: pcap_create Code :
libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0x00007ff66e7b5000) Code :
libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0x00007faa2b141000) |
||||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Pierre Ingénieur développement logiciels Inscription : juin 2007 Messages : 1 178 ![]() |
je pense que c'est du à la version de ld qui n'est pas la meme.
au passage, gcc 4.3.2, ce n'est pas un peu vieux? j'en suis à la 4.7.2
__________________
Mes principes de bases du codeur qui veut pouvoir dormir:
|
|
00
|
|
|
#5 |
![]() ![]() Chercheur d'emploi Inscription : septembre 2007 Messages : 4 612 ![]() |
Hello,
Tu obtiens ce message quand le symbole existe mais qu'il n'est pas défini, c'est-à-dire qu'il ne lui est pas associée une valeur utilisable. Ça arrive notamment lorsque l'on essaie d'appeler une fonction locale à un module (déclarée static) comme indiqué notamment ici. Ceci dit, dans le cas qui nous intéresse, pcap_create() est tout-à-fait légitime. Est-ce que tu ne serais pas en train, par exemple, de lier une application 64 bits vers une bibliothèque 32 bits ? (C'est une vraie question : je n'ai pas fait le test moi-même). |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com