undefined reference to symbol even when nm indicates that this symbol is present in the shared library 2

StackOverflow https://stackoverflow.com/questions/15849422

Вопрос

I found same question here but the answer doesn't help me.

I'm writing test app to use nglib library. But when I try to compile it I get undefined references:

$ 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

but for example when I search for Ng_Init() in libnglib.so, I get positive result.

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

So I'm perplexed why I'm getting undefined reference errors ?!

Это было полезно?

Решение

_ZN5nglib7Ng_InitEv demangles to nglib::Ng_Init() which is not the same as Ng_Init().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top