Qt subdirs项目使用lib和使用lib的app

问题描述 投票:1回答:1

我创建了一个Qt子目录项目,其中有两个项目 - lib1和app1,其中app1使用lib1中的一个类。

enter image description here

LIB1:

Lib1::Lib1() {
    qDebug("hello, lib1");
}

app1应该打印hello, lib1

#include "lib1.h"
int main(int /*argc*/, char */*argv*/[]) {
    Lib1();
    return 0;
}

连接2个项目的规范方法是什么,以便app1可以使用lib1?我看过create and use shared library with qt,它提到了INCLUDEPATHLIBS$$PWD。这是我应该使用的,它是最合适的方式吗?另外,我应该将app1.depends = lib1添加到我的subdirs.pro文件中吗?

c++ qt qmake subdirs
1个回答
2
投票

您可以通过将每个子项目链接到子项目来使用它们。您应该将目标lib pathes添加到pro文件中的LIBSINCLUDEPATH变量。为简单起见,可以通过右键单击子项目并选择“添加库”然后选择“内部库”来完成。从子项目列表中选择一个库时,链接配置会自动添加到.pro中。它会像:

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../Lib1/release/ -lLib1
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../Lib1/debug/ -lLib1
else:unix: LIBS += -L$$OUT_PWD/../Lib1/ -lLib1

INCLUDEPATH += $$PWD/../Lib1
DEPENDPATH += $$PWD/../Lib1

如果你定义app1.depends = lib1Lib1将始终在app1之前构建,因为它依赖于lib。所以建议在你的子目录pro文件中定义它。

© www.soinside.com 2019 - 2024. All rights reserved.