首页 > 编程语言 >提高C++编译速度

提高C++编译速度

时间:2024-03-04 20:11:57浏览次数:15  
标签:set GLOBAL C++ 编译 ccache 速度

提高C++编译速度

Build Performance Insights - Crascit

如何分析和提高大型项目(C/C++)的编译速度? - 知乎 (zhihu.com)

以上链接提供了提高编译速度的方案,以及如何检查是编译哪个文件花的时间最长。

实践下来,我采用的方案是直接换用 ninja 来替代 make ,结合 CMake 计时参数,成功将原本7min的编译时间降低到2min。对于Qt项目,可以修改默认的编译线程数。还可以搭配 ccache 缓存cpp文件信息:

对于qmake:

load(ccache)

对于cmake:

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
	set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
	set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif()

标签:set,GLOBAL,C++,编译,ccache,速度
From: https://www.cnblogs.com/3to4/p/18052554

相关文章

  • C++ 命名空间
    在C++应用程序中。例如,您可能会写一个名为xyz()的函数,在另一个可用的库中也存在一个相同的函数xyz()。这样,编译器就无法判断您所使用的是哪一个xyz()函数。因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。......
  • C++系列:const关键字
    前言在学习C++时,const关键字的知识点分散在书的各个章节。当我们尝试在编程时使用const时,总会感觉有一些细节被遗忘,因而不能得心应手地使用const关键字。因此,本篇文章尝试着对const关键字的做一些总结。参考书籍《C++PrimerPlus》const总结这里是我做的关于const关键字的一些......
  • (持续更新)c++结构体
    结构体指针作用:通过指针访问结构体中的成员利用操作符->可以通过结构体指针访问结构体属性 1.指针访问单一结构体#include<iostream>#include<string>#include<ctime>usingnamespacestd;structStudent{stringname;intage;intscore;};i......
  • C++ 动态内存
    C++ 动态内存C++程序中的内存分为两个部分:栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在C++中,您可......
  • Zabbix重新编译步骤
    比如说,当Zabbix要重新编译对odbc的支持时,需要,添加--with-unixodbc参数,系统需要安装unixODBC-devel$yuminstallunixODBC-devel重新编译zabbix:#停止zabbix服务器systemctlstopzabbix-server#重新编译zabbix./configure--prefix=/usr/local/zabbix--enable-ser......
  • C++ 异常处理
    菜鸟教程C语言中文网程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:1)语法错误在编译和链接阶段就能发现,只有100%符合语法规则的代码才能生成可执行程序。语法错误是最容易发现、最容易定位、最容易排除的错误,程序员最不需要担心的就是这种错误。2)逻辑错......
  • 关于SAP-APP机器-R3trans -d报错-R3trans: /lib64/libstdc++.so.6: version `GLIBCXX_
    在SAP-应用-APP-机器上执行如下命令报错awpxxx03:prdadm270>R3trans-dR3trans:/lib64/libstdc++.so.6:version`GLIBCXX_3.4.26'notfound(requiredbyR3trans) 其实之前,使用过一种方法解决这个问题,可以参考笔者另一篇文章《关于Redhat-Linux中-compat-sap-c++的说......
  • nodejs安装、编译、执行 & npm 使用
    前言全局说明nodejs安装&npm使用nodejs是一个解释器,只是它运行再后端,在命令行看到执行结果;如果用html+js写的页面用浏览器打开,那就是可以在前台看到js执行结果。一、官网官网:https://nodejs.org/文档:https://nodejs.org/en/docs/中文网:http://nodejs.cn/GitHub......
  • 使用dnSpy反编译DLL修改代码后生成新的DLL
    1.准备完整的DLL文件夹,包含需要引用的DLL2.使用dnSpy打开文件夹内需要修改的DLL,找到要修改的方法,例如: Kingdee.BOS.ServiceHelper.DataCenterService.IsLicControl(Contextctx,StringformId),右键编辑方法. 3.进入修改代码界面,进行代码修改,并添加需要的引用,点击"......
  • 【C++ STL容器set 】std::set 的全方位解析
    装载自知乎(虽然有AI辅助操作,但是确实写得好好):【C++STL容器set】std::set的全方位解析-知乎(zhihu.com)<imgsrc="https://pic3.zhimg.com/v2-cc8068b8931c7f65e9a89717e2ab404e_b.jpg"data-size="normal"data-rawwidth="1024"data-rawheight="1024......