关于加快qtcreator编译速度

位流流星
• 阅读 4925

本人使用版本为qt5.12.4 qt creator4.9.1

方法一:
头文件中使用前置声明 class QLabel 而非 #include <QLabel> 根据Qt示例代码,推荐的写法为https://segmentfault.com/a/11...
方法二:
打开编译预处理头文件(PCH),Qt使用 PCH方法很简单,在 .pro 文件中加入一行PRECOMPILED_HEADER = stable.h,指定 Stable.h这个头文件作为编译预处理文件,然后在 stable.h里 包含所用到的所有 Qt 头文件,如果你用了很多qt的类可以直接包含所有,比如 :#include <QtCore>#include <QtGui>这两个文件里又包含了几乎所有Qt常用类,不用担心,即使包含了所有头文件也没关系,有了PCH再多头文件也没影响。

作者:姚冬
链接:https://www.zhihu.com/questio...
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

另外多写一点:
有人提出启动多核编译加以加快速度,方法如下:
1、如果是VC++编译器,可以在 .pro里加入下面一行
QMAKE_CXXFLAGS += /MP
指定/mp编译选项,编译器将使用并行编译,同时起多个编译进程并行编译不同的cpp。
2、如果是MinGW编译器:
Projects->Build Settings->Build Steps->make ,参数中填入-j4,我的六核处理器应填-j6。
经观察,我的ide根据CPU核数,自动添加了该参数,无需设置。可能跟ide版本有关

有人提出在make中添加-r参数(仅针对MinGW有效,VC++无效)
大概意思是:QtCreator在windows下用Mingw编译的时候,在正式开始编译前,会卡一段时间,大概10s左右的样子,所以对小工程就可能造成编译速度慢的假象,如果是这个情况,在make和clean的参数选项前加个 “-r” ,这样就会直接开始编译工作,速度马上就会快很多了。
经查证
-r 或者--no-builtin-rules 忽略隐规则,使之不起作用。该选项不会取消make内嵌的预定义变量。
-R 或者 --no-builtin-variabes 取消make内嵌的预定义变量,不过我们可以在makefile中明确定义某些变量。注意,-R选项同时打开-r选项
因此这种方法貌似并不合适

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Stella981 Stella981
3年前
Python Excel Tutorial 指南
安装有几种不同的安装方法。下面是以xlrd为例的,其它二个库都是使用同样的步骤。从源码安装Linux系统:Python代码  !收藏代码(http://www.iteye.com/images/icon_star.png)(http://my.oschina.net/taisha/admin)1.$ tar 
Wesley13 Wesley13
3年前
MySQLStudy——Mac下MySQL 常用命令 启动 关闭 重启服务 查看版本
MAC下MySQL常用命令本人电脑为MacOS10.14版本MySQL为8.0.15版本查看mysql版本方法一:status;!(https://oscimg.oschina.net/oscnet/01e3f478
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
Java日期时间API系列30
  实际使用中,经常需要使用不同精确度的Date,比如保留到天2020042300:00:00,保留到小时,保留到分钟,保留到秒等,常见的方法是通过格式化到指定精确度(比如:yyyyMMdd),然后再解析为Date。Java8中可以用更多的方法来实现这个需求,下面使用三种方法:使用Format方法、 使用Of方法和使用With方法,性能对比,使用
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
小万哥 小万哥
1年前
深入理解 C++ 语法:从基础知识到高级应用
C语法让我们将以下代码分解以更好地理解它:示例cppincludeusingnamespacestd;intmain()cout<<"HelloWorld!";return0;示例解释第1行:include是一个头文件库,它让我们可以使用输入和输出对象