c++ - 如何链接未知库

标签 c++

例如,我正在尝试使用 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/

相关文章:

c++ - 用字符串及其大小折叠表达式

C++ - typeid(),用于派生类不返回正确的类型

c++ - 将 std::string 数字转换为十六进制数

c++ - C/C++ 函数中的 LoadLibrary 和 GetProcAddress

c++ - 如何在 fedora/linux gcc++ 上链接 OpenGL/glew/glfw

c++ - 委托(delegate)构造函数

c++ - 在 Ubuntu 20.04 中为 RPI4 链接 WiringPi 共享对象库

c++ - 为特定的模板方法实例定义别名

c++ - QRegularExpression和反斜杠的使用规则

c++方法链接返回值不起作用