即使 nm 报告存在符号,运行时也会出现符号查找错误
Symbol lookup error at runtime even though nm reports symbol present
我这样构建我的程序:
g++ -std=c++11 myprog.cpp -o myprog -lqpid-proton-cpp
然后我 运行 ./myprog
得到这个错误:
symbol lookup error: ./myprog: undefined symbol: _ZN6proton10event_loop6injectESt8functionIFvvEE
然而,nm 报告符号存在于库中。 . .
nm -D /usr/lib/libqpid-proton-cpp.so | grep _ZN6proton10event_loop6injectESt8functionIFvvEE
。 . .产量:
000000000002f460 T _ZN6proton10event_loop6injectESt8functionIFvvEE
我在这里错过了什么?
您是否验证过,例如,使用 ldd myprog
,您查看了正确的共享对象?有可能找到不同的共享对象。
我这样构建我的程序:
g++ -std=c++11 myprog.cpp -o myprog -lqpid-proton-cpp
然后我 运行 ./myprog
得到这个错误:
symbol lookup error: ./myprog: undefined symbol: _ZN6proton10event_loop6injectESt8functionIFvvEE
然而,nm 报告符号存在于库中。 . .
nm -D /usr/lib/libqpid-proton-cpp.so | grep _ZN6proton10event_loop6injectESt8functionIFvvEE
。 . .产量:
000000000002f460 T _ZN6proton10event_loop6injectESt8functionIFvvEE
我在这里错过了什么?
您是否验证过,例如,使用 ldd myprog
,您查看了正确的共享对象?有可能找到不同的共享对象。