我正在編譯一個使用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不能很好地處理並行構建。 –