référence non définie au symbole même si nm indique que ce symbole est présent dans la bibliothèque partagée 2

j'ai trouvé même question ici, mais la réponse ne m'aide pas.

j'écris une application test pour utiliser la bibliothèque nglib. Mais quand j'essaie de le compiler, je reçois des références non définies:

$ g++ test1.cpp -L. -lnglib
test1.cpp: In function ‘int main()’:
/tmp/cchcKZfx.o:test1.cpp:function main: error: undefined reference to 'Ng_Init()'
/tmp/cchcKZfx.o:test1.cpp:function main: error: undefined reference to 'Ng_NewMesh()'
...
/tmp/cchcKZfx.o:test1.cpp:function main: error: undefined reference to 'Ng_Exit()'
collect2: ld returned 1 exit status

mais par exemple quand je cherche Ng_Init() dans libnglib.donc, j'obtiens un résultat positif.

$ nm -D libnglib.so | grep Ng_Init
000000000008d0d0 T _ZN5nglib7Ng_InitEv

donc je me demande pourquoi je reçois des erreurs de référence non définies ?!

0
demandé sur Community 2013-04-06 13:52:25

1 réponses

_ZN5nglib7Ng_InitEv démangles en nglib::Ng_Init() qui n'est pas la même chose que Ng_Init() .

3
répondu n.m. 2013-04-06 10:15:06