对第三方库上的类::方法的未定义引用

undefined reference to Class::Method on 3rd party library

本文关键字:方法 未定义 引用 第三方      更新时间:2023-10-16

我有一个适用于Linux和Windows的第三方c ++库,我正在将其导入QT项目并尝试调用一些方法。在WinXP(MinGW 3.4.5)上,它可以编译,但在Linux 64位(gcc 4.8.2)上,我得到:对Class::Method的未定义引用,用于库中调用的许多方法。例如。我什至没有打电话给他们。

ld 参数的 Oder 由 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还显示所有缺少的方法都在那里。

谢谢。

该库已链接到其他库,并且缺少一些方法。我读过 nm 手册,所有这些报告的方法都是:"U"符号未定义。然后我检查了其余的库,这些方法根本没有提供。