2017-06-16 61 views
0

我正在爲使用QtCreator的Android構建一個巨大的C++/Qt項目。我有腳本生成.pro文件,我想在.pro文件中指定我希望構建多線程。如何在我的QtCreator的.pro項目文件中設置-j mingw選項

我知道我可以去項目選項,並添加-j%NUMBER_OF_PROCESSORS%選項,以使: enter image description here

不過,我想有這個選項設置爲我們所有的項目,併爲每developper,我想有這個選項可以從.pro文件中設置。

我想:

  • QMAKE_CXXFLAGS += -j%NUMBER_OF_PROCESSORS%,但是這臺爲arm-linux的-androideabi-G ++,得到控制而應該設置爲MINGW32-的make.exe
  • $$(MAKEFLAGS) = -j%NUMBER_OF_PROCESSORS%,沒有成功的選擇...不知道這是從.pro文件設置和環境變量的正確語法...甚至不知道這是可行的。
  • $$(MAKE_COMMAND) = mingw32-make -j%NUMBER_OF_PROCESSORS%,沒有成功

有誰知道如何設置從.pro文件這個選項?

回答

0

其實他最好是推薦每個想加速編譯的開發者設置MAKEFLAGS環境變量。它可以決定將其設置爲-j2-j4-j%NUMBER_OF_PROCESSORS%(如果想要快速編譯,即使它超載計算機)。

然後這個被make使用,並且適用於每個用QtCreator編譯的項目。使用這個選項的事實在QtCreator中(在選項頁面和日誌中)是絕對不可見的,但是,您可以在Windows任務管理器中看到多個g ++實例並行運行。

0

有一個簡單的理由,它不屬於項目文件是沒有辦法的。如果你的團隊中的開發人員不想使用他的所有核心,因爲他正在做其他事情,並且他想同時更多地使用CPU果汁?如果有人擁有比您選擇的數量少2個核心的內容?如果某人擁有比您選擇的數量多的內核,該怎麼辦?

總之:不要。如果你想要最佳的cpu核心使用率,可以使用類似Ninja這樣的功能,而不需要特定的編號。

注:忍者不會與qmake一起工作。儘可能嘗試CMake。儘管腳本語言很糟糕,但它提供了很多可能性和靈活性。

+0

-j%NUMBER_OF_PROCESSORS%將獲取好數量的線程....但是,當你說用戶可能不想超載他的機器時,你是正確的... – jpo38

+0

是否真的沒有辦法通過設置.pro文件中的環境變量? – jpo38

+0

@ jpo38 qmake運行的環境與make運行的環境不同,因此不能,set環境變量將無法生存。 Qt Creator有一個「Build Environment」設置來設置它。另一種方法是使用組策略併爲每個用戶設置「MAKEFLAGS」。事情是,這不是構建系統的工作(嗯,迄今爲止,工作數量已經確定)。正如我所描述的,更多現代化的工具能夠以正確的方式做到這一點,並完全消除您存在的問題。 – rubenvb

0

項目的構建和運行設置保存在.pro.user文件AFAIK中。您可以使用腳本修改.pro.user,找到如下所示的一行:</< value =「QString」值>「(根據版本和平臺可能略有不同),並將 [空或某些其他生成自變量]的位置更改爲-j%NUMBER_OF_PROCESSORS%。 但是,您需要爲每個特定用戶保留.pro.user文件中的大部分其他設置,這意味着您需要在每個主機上運行腳本,並且在任何用戶更改Qt中的參數創建者的構建設置。請注意,我並不是說手動修改.pro.user是一個好主意,但它是一種做你想做的事情的方式。

+0

Problm是.pro.user只在用戶打開我生成的.pro文件後才創建....所以我的腳本需要運行兩次... – jpo38

相關問題