我有一个 QT 项目 (c++),它有一个库,由于依赖关系,该库需要在应用程序启动之前构建。我的 qmake 文件执行以下操作:
TEMPLATE = MyApp
QMAKE_EXTRA_TARGETS += MyDependency
MyDependency.depends = FORCE
MyDependency.commands = make -C dependencies/MyDependency/
PRE_TARGETDEPS += MyDependency
DEPENDPATH += . \
dependencies/MyDependency/
dependencies/MyDependency/utilities
INCLUDEPATH += . \
dependencies/MyDependency/
dependencies/MyDependency/utilities
LIBS += -Ldependencies/MyDependency/dist
LIBS += -lmessageclient \
-lmessages \
-lssutilities \
-lboost_serialization \
-lcommon \
-lmng \
-lz \
-lrt \
-ldl
我的项目非常大,我正在使用 distcc 来利用分布式编译。但是,每当我使用多个 distcc 节点运行 make 时,除了依赖于 MyDependency 的项目代码之外,我的项目还会开始编译 MyDependency。这会导致需要预先构建依赖项的代码部分出现编译错误。
如果我运行 qmake,然后运行只有 1 个 distcc 节点的后续 make,它将首先编译 MyDependency,然后继续编译项目的其余部分。我还通过使用使它在其他项目中工作
CONFIG += ordered
TEMPLATE = subdirs
但是,我更愿意在没有多个子目录和 .pro 文件的情况下保持结构相同。有没有办法在仍然使用多个 distcc 节点的同时实现这一点?