一、多核编译

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

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

  1. 加快QT工程编译速度

    转载:学海方舟 利用Qt Creator编译工程大家都觉得慢,特别是整个工程重新编译时,那问题来了怎么加快编译速度呢 ,其实方法很简单,利用我们的强大的多核CPU来实现多核编译: 在编译参数中加入“- ...

  2. QT:提高QT Creator编译速度,配置预编译头Stable.h

    提高QT Creator编译速度,配置预编译头Stable.h QT Creator支持预编译头提高编辑速度,网上有些教程写得不详细,走了弯路,具体实现方法如下. (1)工程.PRO文件加入下面代码 ...

  3. 借助 RAM disk 技术,加快前端工程打包速度

    背景以 Jenkins 服务器为例,在构建内部的这个项目时,CE 每部署一次服务,最快 6 分钟,最慢将近 13 分钟左右.遇到多个项目并发打包会因为资源占用等问题时间会延长,甚至出现过几次 20 分 ...

  4. [转]QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

  5. QT4.8.5+qt-vs-addin-1.1.11+VS2010安装配置和QT工程的新建和加载

    1.下载windows下的QT库 QT4.8.5 for vs2010: http://download.qt-project.org/official_releases/qt/4.8/4.8.5/q ...

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

    http://www.cnblogs.com/baiyanhuang/archive/2010/01/17/1730717.html   C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速 ...

  7. 转: 加快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/ 加快 ...

  8. 加快C++代码的编译速度方法【转载】

    C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了.比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!! ...

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

    最近在开发一个大项目的时候遇到一个很头疼的问题,由于项目代码较多,每次都要编译链接1分钟左右,调试的时候很浪费时间,于是研究了一下如何提高编译链接的速度,在这里分享给大家. 提升编译链接的速度主要有以 ...

随机推荐

  1. [RxJS] Flatten a higher order observable with mergeAll in RxJS

    Among RxJS flattening operators, switch is the most commonly used operator. However, it is important ...

  2. Spring MVC学习:配置简解

    http://blog.csdn.net/heirenheiren/article/details/41485485

  3. [CSS] Build Responsive CSS Layouts with Tachyons

    Building responsive css layouts is critical in any modern website. Tachyons makes this easy by desig ...

  4. thinkphp中如何实现无限级分类?

    thinkphp中如何实现无限级分类? 一.总结 1.数据表设计+递归算法 二.php实现无限级分类实例总结 1.数据库数据如下: 2.任务需求:给一个id,求自己和所有父亲. 3.实现代码如下:th ...

  5. [Postgre] Insert Data into Postgre Tables

    // Insert one row INSERT INTO movies (title, release_date, count_stars, director_id) VALUES ( 'Kill ...

  6. Net程序调试

    Net程序调试 前言 作为一个.net开发工程师,不管是在写桌面程序.服务程序或web程序,在开发阶段,我们必须非常熟悉vs的动态调试技能,当然web程序可能还需要调试前端的脚本或样式,这不在本文的讨 ...

  7. js进阶 10-3 jquery中为什么用document.ready方法

    js进阶 10-3  jquery中为什么用document.ready方法 一.总结 一句话总结: 1.document.ready和window.onload的区别:用哪个好? document. ...

  8. 【9602】&&【b402】合并果子

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成 ...

  9. javascript中window对象 部分操作

    <!--引用javascript外部脚本--> <script src="ss.js"></script> <script> //警 ...

  10. 【noip模拟】连环

    [题目描述] 惠子说:“连环可解也”. 这说明他是一个破解机关的高手,连连环都能解开,鲁班锁什么的自然不在话下.一位鲁班的后人非常不服气,于是找到惠子,给他出了一道题. 他首先给了惠子一个长度为 n的 ...