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