2017-10-12 103 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