【问题标题】:How to link a library from another library in QT如何在 QT 中从另一个库链接一个库
【发布时间】:2012-04-13 04:50:04
【问题描述】:

例如:

lib1 是 lib1 路径中的一个库

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

lib2 .pro 文件有:

LIBS += -L../lib1 -llib1

INCLUDEPATH += ../lib1

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

测试 .pro 文件有:

LIBS += -L../lib2 -llib2

INCLUDEPATH += ../lib2

我正常构建 lib1 和 lib2,但是当我尝试构建测试时,我在 Windows 上收到此错误(但在 MAC 上没有):

在函数'lib2中的函数'

undefined reference to 'function in lib1'

【问题讨论】:

    标签: windows qt hyperlink


    【解决方案1】:

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

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

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

    【讨论】:

    • 其实Linux上的GCC也有抱怨,对我来说这是一个bug,LIB1与Test没有任何关系。
    • 在像示例这样的简单项目中它工作正常,但在我的项目中这不起作用,但由于某些奇怪的原因,当我在主项目中包含 .cpp 文件时工作:#include " xmlreader.cpp"。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    相关资源
    最近更新 更多