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++ - "Catch"单元测试框架 - REQUIRE_THROWS_AS

c++ - 如何将数组保存到两个类方法中?

c++ - 加载、裁剪和保存 jpg C++

c++ - 在内联汇编代码中使用 C++ 命名空间

带有接口(interface)对象的 C++ 模板

c++ - AVX2 的汇编错误

c++ - 无法在二叉树中实现递归搜索

c# - 如何在 cpp 可执行文件中嵌入 licence.licx 文件?

c++ - 编写 LookAt 函数

c++ - Objective C 到 C++ 桥的自动代码生成