QtCreator编译速度慢解决方法

我是来反对楼上某些答案的。
我曾经用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 <QtCore>
#include <QtGui>
这两个文件里又包含了几乎所有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-multimedia -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
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt Creator 本身并不直接影响编译速度,它只是一个集成开发环境(IDE),用于编写和管理 Qt 项目。编译速度主要取决于以下几个因素: 1. 项目配置:如果你的项目配置不当,例如使用了过多的调试信息、开启了优化等选项,会导致编译速度。建议根据实际需要进行适当的配置,尽量避免不必要的开销。 2. 代码结构和依赖:如果你的项目代码结构复杂,存在大量的文件和依赖关系,编译时间会随之增加。尽量合理组织代码,使用前向声明、分离编译等技术来减少不必要的编译时间。 3. 编译器和编译选项:选择合适的编译器和编译选项也会对编译速度产生影响。确保你使用的是较新版本的编译器,并针对你的项目选择合适的优化选项。 4. 硬件性能:编译速度还与你的计算机硬件性能有关。更快的 CPU、更快的磁盘读写速度等都可以加快编译过程。 如果你觉得 Qt Creator 的编译速度,可以尝试以下方法来优化: 1. 优化项目配置:检查项目配置,去除不必要的选项,例如关闭不需要的调试信息或优化选项。 2. 分离编译:将大型项目分割成多个模块,每个模块独立编译。这样可以减少不必要的重新编译时间。 3. 并行编译:在 Qt Creator 的构建设置中启用并行编译选项,以充分利用多核处理器的性能。 4. 使用预编译头文件:对于频繁包含的头文件,可以使用预编译头文件(PCH)来加快编译速度。 5. 升级硬件:如果你的计算机硬件性能较低,考虑升级 CPU、增加内存或使用更快的磁盘等方式来提升编译速度。 请注意,以上方法仅供参考,具体优化策略还需要根据你的项目和环境进行调整。希望这些建议能对你有所帮助。如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值