mingw32-make` -j`选项是否已损坏?

时间:2017-06-20 07:51:10

标签: android c++ mingw qt-creator

我正在使用QtCreator / w Qt 5.6 for Android编译一个大项目(约40个库和1个可执行文件)。 QtCreator使用“mingw492_32 \ bin \ mingw32-make.exe”来运行构建。

当我使用默认选项进行编译时,我的所有项目编译都很好。

当我在QtCreator项目设置中添加-j4-j8mingw32-make.exe命令时,构建速度更快但随机失败。在某些时候,当库BA链接时,我可以在日志中看到它尝试链接BA编译尚未完成,因此报告cannot open ..../libA.so

请注意:

  • B的{​​{1}}链接由A .pro文件中的LIBS += -l$$OUT_PWD/../../lib/A/libA.so管理
  • 在顶级.pro文件B B之后显示
  • A

1 个答案:

答案 0 :(得分:2)

根据Qmake project dependencies (linked libraries),必须在.pro文件中明确指定dependecies。

所以我添加了我的顶级.pro文件(在SUBDIRS += A.pro B.pro之后):

CONFIG += ordered
B.depends += A

Ans PRE_TARGETDEPS += $$OUT_PWD/../../lib/A/libA.so

中的B.so

通过这些更改,使用-j4选项的构建显然有效,并且将项目编译时间除以3 !!