我正在编译一个使用QtCreator/w Qt 5.6 for Android的大项目(〜40个库和1个可执行文件)。 QtCreator使用“mingw492_32 \ bin \ mingw32-make.exe”来操作构建。mingw32-make`-j`选项被破坏了吗?
当我用默认选项编译时,我的所有项目都编译好了。
当我在QtCreator项目设置中添加-j4
或-j8
到mingw32-make.exe
命令时,构建速度更快但随机失败。在某些时候,虽然库B
与A
链接,但我可以在日志中看到它尝试链接B
,而A
编译尚未完成,因此它报告cannot open ..../libA.so
。
需要注意的是:
- 的事实,
B
与A
链接被LIBS += -l$$OUT_PWD/../../lib/A/libA.so
在B
的.pro文件管理 B
出现在顶级.pro文件(SUBDIRS += A.pro B.pro
)
A
后
不幸的是,在进行并行构建时,不善于处理依赖关系。这意味着它可以尝试构建一些依赖于尚未构建的其他内容的东西。 –
@Someprogrammerdude:但是QtCreator是Make的一个,不应该支持吗? – jpo38
由于QtCreator默认没有设置标志,因此可能是由QtCreator创建的makefile不能很好地处理并行构建。 –