5

我有一个 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 节点的同时实现这一点?

4

0 回答 0