1. 程式人生 > >加快QT工程編譯速度(還可給Qt for Android設置)

加快QT工程編譯速度(還可給Qt for Android設置)

qmake targe 沒有 利用 tools too blank tab 這樣的

一、多核編譯

環境:win10, Qt 5.4.1,編譯器mingw32

項目: Qt for Android

Qt Creator 在編譯android項目時不支持預編譯,默認cpu單核編譯,工程稍大一點導致編譯過程極其緩慢,影響效率。

不過Qt Creator自帶了多核編譯工具支持,只是沒有默認開啟,需要自己在項目中進行配置才能生效。

步驟如下【以本機和項目為例】:

1.查看是否已經安裝了jom工具:C:\Qt\Qt5.4.1\Tools\QtCreator\bin\jom.exe

2.項目添加參數-j 4【4是cpu的核數,我的是i5,只有四個核心】

技術分享

添加參數完畢後可以重新編譯項目試試看,編譯的時候可以打開任務管理器,能看到所有的cpu核心都能被充分利用。

之前我的機器【cpu i5-4590/內存8G/機械硬盤】項目全部重編需要50多分鐘,啟用多核以後,只需要13分鐘左右。

PS.如果是編譯器用的是ms的vc++,則只需要在.pro文件中添加 QMAKE_CXXFLAGS += /MP 即可。

二、使用預編譯頭

“用Qt寫的程序編譯比MFC慢”的說法是錯誤的。單位代碼行數編譯Qt遠比MFC快得多,因為Qt庫的頭文件設計非常好,盡量都使用了前置聲明,避免了頭文件嵌套,幾乎所有類都使用了公有類和私有類的設計,把沒必要公開的聲明放到私有頭文件裏,避免了編譯時引入過多代碼。而MFC沒有這樣的設計。
至於大家感覺MFC快主要原因是MFC工程默認打開了編譯預處理頭文件(PCH),但是這是VC編譯器的特性,所有C++程序都可以用,不是MFC特有,Qt也可以使用 PCH。

方法很簡單,在你的 .pro 文件中加入一行

PRECOMPILED_HEADER = stable.h

指定 Stable.h這個頭文件作為編譯預處理文件,MFC裏這個文件一般叫stdafx.h。然後在 stable.h裏 包含你所用到的所有 Qt 頭文件,如果你用了很多qt的類可以直接包含所有
比如 :

#include <QtCore>
#include <QtGui>

這兩個文件裏又包含了幾乎所有Qt常用類。不用擔心,即使包含了所有頭文件也沒關系,有了PCH再多頭文件也沒影響。
如果你還想編譯再快點,可以在 .pro裏加入下面一行

QMAKE_CXXFLAGS += /MP

指定/mp編譯選項,編譯器將使用並行編譯,同時起多個編譯進程並行編譯不同的cpp
而且QT這種引入PCH的方法比MFC的好,由於MFC的PCH選項是每個工程逐個指定的,很容易被某些人搞壞,我曾經無數次修復PCH問題,但是Qt的選項是寫在.pro裏的,寫一次就永遠不會錯。
MFC一旦弄壞了PCH,編譯也慢得令人發指。

原文鏈接:http://blog.csdn.net/hsshh1988/article/details/52604196

原文鏈接:http://blog.csdn.net/crlyn/article/details/52005606

http://blog.csdn.net/caoshangpa/article/details/75204018

加快QT工程編譯速度(還可給Qt for Android設置)