我正在使用QtCreator / w Qt 5.6 for Android编译一个大项目(约40个库和1个可执行文件)。 QtCreator使用“mingw492_32 \ bin \ mingw32-make.exe”来运行构建。
当我使用默认选项进行编译时,我的所有项目编译都很好。
当我在QtCreator项目设置中添加-j4
或-j8
到mingw32-make.exe
命令时,构建速度更快但随机失败。在某些时候,当库B
与A
链接时,我可以在日志中看到它尝试链接B
而A
编译尚未完成,因此报告cannot open ..../libA.so
。
请注意:
B
的{{1}}链接由A
.pro文件中的LIBS += -l$$OUT_PWD/../../lib/A/libA.so
管理B
B
之后显示A
答案 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 !!