例如,我正在尝试使用 GLFW3,它向我抛出以下错误
x11_init.c:-1: error: undefined reference to `XIQueryVersion'.
我只知道它与 X11 有关,但我怎么知道我必须链接哪个库?你会如何解决这个问题?
最佳答案
您可以使用 nm
列出系统库中定义的符号,以便找到包含您丢失的符号的符号:
find /usr/lib/ -type f -name \*.a \
-exec nm -gAC --defined-only {} 2> /dev/null \; \
| grep \ XIQueryVersion
哪些输出:
/usr/lib/x86_64-linux-gnu/libXi.a:XIQueryVersion.o:00000110 T XIQueryVersion
然后你知道你必须链接libXi.a
,当然你可以调整库路径和符号名称,只有当你的系统中已经有正确的库时才有效。
关于c++ - 如何链接未知库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587828/