2017-10-12 163 views
1

當使用預編譯頭文件激活的現代和最近的C++編譯器(例如MSVC2015)時,關於包含Qt頭文件的當前「最佳實踐」是什麼?Qt包含和預編譯頭文件的最佳實踐?

例子:

#include <QStringList> 
#include <QTreeWidget> 
#include <QListWidget> 

#include <QtCore> 
#include <QtGui> 
  • 我應該選擇什麼樣的約定一個新的項目?

  • 兩者的優點/缺點是什麼?

  • 什麼是新項目更常見?

回答

1

預編譯減少編譯時間,不僅如此,所以如果你有

#include <QtCore/QStringList> 

它的速度比

#include <QtCore> 

和二進制文件會大一些與QtCore包括在內。

如果你確信你依賴於一切QtCore,包括,如果不是,包含的頭separatly

+0

「......和你的二進制文件將具有較大的包括QtCore。」你真的確定嗎?難道說編譯器在看到什麼是需要的,什麼不是真正的程序員關於預編譯頭文件時更聰明? – FlKo

+0

這取決於你的鏈接選項 –

+0

我不認爲這是正確的。對於動態鏈接而言,它沒有區別,因爲它都是外部的。對於靜態鏈接,編譯器僅包含用戶代碼直接或間接引用的代碼。我的靜態鏈接應用程序只有10 MB,即使我喜歡幷包含超過50 MB的靜態庫。似乎只有我實際使用的是被添加。 – dtech