Неопределенная ссылка на символ, даже если nm указывает, что этот символ присутствует в общей библиотеке 2
Я нашел тот же вопрос здесь, но ответ мне не помогает.
Я пишу тестовое приложение для использования библиотеки nglib. Но когда я пытаюсь скомпилировать его, я получаю неопределенные ссылки:
$ 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
но, например, когда я ищу Ng_Init() в libnglib.so, я получаю положительный результат.
$ nm -D libnglib.so | grep Ng_Init
000000000008d0d0 T _ZN5nglib7Ng_InitEv
Так что я озадачен, почему я получаю неопределенные ошибки ссылок?!
1 ответ
Решение
_ZN5nglib7Ng_InitEv
ослабляет nglib::Ng_Init()
который не совпадает с Ng_Init()
,