加快QT工程编译速度(还可给Qt for Android设置)

一、多核编译

环境: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

时间: 2024-12-17 09:27:41

加快QT工程编译速度(还可给Qt for Android设置)的相关文章

QT工程编译

电脑中装了多个QT版本时,在我的电脑里,有QT 5.3.2 配合VS2013,有QT5.11.2配合VS2019. 导入别人编写的QT工程时,注意要在QT VS TOOL里选择好对应的编译器版本. 在Qt Project Settings里保证 vs的头文件包含里注意.我电脑5.3.2版本QT装在E盘根目录 E:\Qt\Qt5.3.2\5.3\msvc2013_64\include\QtCore;E:\Qt\Qt5.3.2\5.3\msvc2013_64\include\QtGui;E:\Qt\

如何提高Qt工程的编译速度

当工程代码量大的时候,尤其大量引用第三方类库不当的时候,会导致编译速度下降,严重影响工作效率. 一. 并行编译 1.如果是VC++编译器,可以在 .pro里加入下面一行 QMAKE_CXXFLAGS += /MP 或者: *msvc* { QMAKE_CXXFLAGS += /MP } 指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp. 2.如果是MinGW编译器: Projects->Build Settings->Build Steps->make ,

转: 加快Android编译速度

转: http://timeszoro.xyz/2015/11/25/%E5%8A%A0%E5%BF%ABandroid%E7%BC%96%E8%AF%91%E9%80%9F%E5%BA%A6/ 加快Android编译速度 发表于 2015-11-25   | 对于Android开发者而言,随着工程不断的壮大,Android项目的编译时间也逐渐变长,即便是有时候添加一行代码也需要等待好久才能看见期待的效果.之前加快Android编译的工具相对较少,其中最具有代表性的开源项目当属FaceBook的

加快XCode的编译链接速度(200%+)—XCode编译速度慢的解决方案

最近在开发一个大项目的时候遇到一个很头疼的问题,由于项目代码较多,每次都要编译链接1分钟左右,调试的时候很浪费时间,于是研究了一下如何提高编译链接的速度,在这里分享给大家. 提升编译链接的速度主要有以下三个方式: 1. 提高XCode编译时使用的线程数 defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4 XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升

如何加快C++代码的编译速度 (转)

C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了.比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!!!虽然平时开发一般不需要在本地做完整的build,但编译几个相关的工程就够你等上好一段时间的了(老外管这个叫monkey around,相当形象).想想若干年在一台单核2.8GHZ上工作时的场景 - 面前放本书,一点build按钮,就低头读一会书~~~往事不堪回首. 可以想象,如果不加以重视,编译速

如何加快C++代码的编译速度 转

http://www.cnblogs.com/baiyanhuang/archive/2010/01/17/1730717.html C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了.比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!!!虽然平时开发一般不需要在本地做完整的build,但编译几个相关的工程就够你等上好一段时间的了(老外管这个叫monkey around,相当形象).想想若干年在一台单

加快android studio 编译速度zz

工程build一次太慢  经过各种搜索 整合以下 仅供参考 1.在下列目录中新建 gradle.properties 文件 /home//.gradle/ (Linux) /Users//.gradle/ (Mac) C:\Users\\.gradle (Windows) 在文件中添加 org.gradle.daemon=true 2.在本地工程的gradle.properties 添加如下 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -X

Xcode6 添加pch文件 加快编译速度

Xcode6添加pch文件 一直在用xcode6开发,但项目都是在xcode5上创建的,所以一直没注意到,xcode6竟然干掉pch文件了. 如何在Xcode6中添加pch(Precompile Prefix Header)? 1,Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件:“工程名-Prefix.pch”: 2,将building setting中的precompile header选项的路径添加“$(SRCROOT)/项目名称/pch

开启多线程加快编译速度

随着工程的增大,编译花的时间越来长.为了提高编译效率,我们可以开启多线程来提高编译速度,充分利用多核机器的性能来优化编译. 1.windows下. 目前windows下我们使用vs2012编译工程.vs可以通过以下方法打开多核编译,如图: 首先在工程的C/C++选项的多处理器编译选择“是(/MP)” 然后在里面的代码生成中的“启用最小生成”选择“否(/Gm-)”. 然后重新编译,你会发现编译速度会提升很多. 2.linux下. linux下我们使用QtCreator编译工程.QtCreator可