QtCreator編譯速度慢解決方法

2021-06-29 05:53:06 字數 2162 閱讀 9203

我是來反對樓上某些答案的。

我曾經用mfc寫了金山詞霸(大約20多萬行),又用qt寫了yy語音(大約100多萬行),算是對兩種框架都比較有經驗。

糾正幾個錯誤的認識。

1. 「用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

#include

這兩個檔案裡又包含了幾乎所有qt常用類

不用擔心,即使包含了所有標頭檔案也沒關係,有了pch再多頭檔案也沒影響。

如果你還想編譯再快點,可以在 .pro裡加入下面一行

qmake_cxxflags += /mp
指定/mp編譯選項,編譯器將使用並行編譯,同時起多個編譯程序並行編譯不同的cpp

而且qt這種引入pch的方法比mfc的好,由於mfc的pch選項是每個工程逐個指定的,很容易被某些人搞壞,我曾經無數次修復pch問題,但是qt的選項是寫在.pro裡的,寫一次就永遠不會錯。

mfc一旦弄壞了pch,編譯也慢得令人髮指。

給個參考時間吧,yy最新版本大約 100多萬行c++**,rebuild debug和releae總共需要20多分鐘,機器是i5 四核ssd硬碟。其實對於大專案硬碟才是瓶頸,如果換機械硬碟要慢差不多70%,有個同事用10g記憶體做了個記憶體盤編譯,還能快30%。

如果你比這個慢,請檢查自己的**問題。

2. 「qt本身編譯慢」的說法是錯的

qt本身其實編譯並不慢,慢的是webkit庫和例子程式,你如果不改任何選項預設是會編譯所有的,webkit本身就是個恐龍級專案,用了太多泛型技術,編譯非常慢。另外qt裡附帶了數百個例子工程,都編譯一邊也很慢。如果僅編譯qt核心庫是很快的,比如qtcore只需要1分鐘,qtgui大約5分鐘。

送個福利(僅限windows vc++ 2008):

configure.exe -qt-libjpeg -qt-zlib -qt-libpng -qt-libjpeg -qt-gif -no-libtiff -no-libmng -nomake examples -nomake demos -no-webkit -nomake doc -no-plugin-manifests -no-exceptions -no-rtti -no-qt3support -no-openssl -no-opengl -no-********** -no-3dnow -no-native-gestures -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -no-sql-sqlite -no-dbus -platform win32-msvc2008

這是我自己用的qt編譯前的配置命令列,把我自己用不到的都去掉了,這樣配置編譯就快很多了。

我把 webkit examples demos 等大傢伙都去掉了。如果你真的需要這些,可以安裝qt sdk裡面有編譯好的版本。

補充:qt creator只是ide,不是編譯器,編譯慢真的不關他的事,要看你具體用的編譯器是什麼。一般來說在windows下就是mingw,也就是乙個移植版本的gcc,的確是不如vc++裡的cl快的。

如果是其它平台,那麼編譯器可以換成llvm的clang,那就快很多了。

在windows下來是用vc++吧,推薦vc2008,qt和vc的ide結合非常好,我現在的專案都是用vc2008+qt的,開發效率很高,記得裝visual assist哦。

qmake -tp vc

XCode編譯速度慢的處理方法

提公升編譯鏈結的速度主要有以下三個方式 1.提高xcode編譯時使用的執行緒數 複製 如下 xcode預設使用與cpu核數相同的執行緒來進行編譯,但由於編譯過程中的io操作往往比cpu運算要多,因此適當的提公升執行緒數可以在一定程度上加快編譯速度。2.將debug information forma...

FTP的速度慢

最近發現在在家裡上傳到ftp的速度很不正常,小檔案上傳簡直就是悲劇,一上傳速度就變成0,測試了大檔案一開始速度正常然後開始變慢,速度到0,過幾秒鐘後速度才恢復。一開始以為是ftp伺服器故障,檢查了很多設定,包括重新編譯依然無效。但是發現在單位正常。之後查閱了很多相關資料,發現居然和mtu值有關,預設...

MySQL 查詢速度慢

2016年09月30日 14 31 44 以下是基於我結合b 樹的資料結構和對實驗結果的推測作出的判斷,如有錯誤,懇請指正!今天實驗了一下mysql的count 操作優化,以下討論基於mysql5.7 innodb儲存引擎.x86 windows作業系統。建立的表的結構如下 資料量為100萬 首先是...