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

1

0

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 ?!

Godesberg answered 6/4, 2013 at 9:52 Comment(0)
A
4

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

Asymmetric answered 6/4, 2013 at 10:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.