如何在Ubuntu Linux上的.la文件中转储符号?
我收到此链接错误:
main.c:(.text+0xbfb): undefined reference to `Browser_new'
我认为我的main.c正在链接libwebkit-1.0.la。那么如何判断libwebkit-1.0.la是否有符号'Browser_new'?
CXXLD libwebkit-1.0.la
CCLD Programs/GtkLauncher
答案 0 :(得分:4)
问题很可能是你正在使用C而libwebkit有C ++符号。与您在包含文件中看到的相比,C ++符号名称将为mangled。
无论如何,要回答这个问题:.la是一个libtool库。通常它指向.so文件:
$ grep dlname libwebkit-1.0.la
dlname='libwebkit-1.0.so'
然后在.so文件中,您可以使用nm来显示动态符号:
$ nm -D libwebkit-1.0.so
...
如果这是一个C ++库,那么可以使用-C标志来解码C ++函数名。
$ nm -D -C libwebkit-1.0.so