0

例如:

lib1 它是 lib1 路径中的一个库

lib2 它是 lib2 路径中的一个库,它依赖于 lib1,这意味着:

lib2 .pro 文件有:

LIBS += -L../lib1 -llib1

包含路径 += ../lib1

测试它是依赖于 lib2 的测试路径中的可执行文件,这意味着:

测试 .pro 文件有:

LIBS += -L../lib2 -llib2

包含路径 += ../lib2

我正常构建 lib1 和 lib2,但是当我尝试构建测试时,我在 Windows 上得到了这个错误(但不是在 MAC 上):

在函数“lib2 中的函数”中

undefined reference to 'function in lib1'
4

1 回答 1

1

您还需要添加win32:LIBS += -L../lib1 -llib1到测试 .pro 文件。

Windows 要求在链接时解析所有符号,因此如果test需要lib2它本身需要,lib1则必须同时与测试链接。lib2lib1

Unix(MacOSx,Linux,...)可以链接带有无法解析符号的库,因此test只需要lib1在加载时。

于 2012-04-12T20:50:04.857 回答