【发布时间】:2015-07-10 06:23:39
【问题描述】:
我有一个适用于 Linux 和 Windows 的第 3 方 c++ 库,我正在将其导入 QT 项目并尝试调用一些方法。在 WinXP (MinGW 3.4.5) 上它可以编译,但在 Linux 64bit (gcc 4.8.2) 上我得到: 库中调用的许多方法对 Class::Method 的未定义引用。例如。我什至没有给他们打电话。
ld参数的顺序由qmake处理,用其他库测试就可以了。
有什么方法可以检查库是否应该工作?还是 g++ 3.5 和 4.8 不兼容?
$file libbase.so.1.0.0
libpbase.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=fccb75e93971bd702949224d961b8e78b33ac875, not stripped
$nm libbase.so.1.0.0 还表明所有缺少的方法都在那里。
谢谢。
【问题讨论】:
-
您的链接顺序是否正确?因为顺序很重要,例如,如果您手动构建或链接,请始终将库放在命令行的最后。
-
我想你可能错过了
libbase.so的头文件。你确定你已经包含了头文件?