首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在CMake中使用CCache?

在CMake中使用CCache可以提高编译速度,减少重新编译时间。以下是如何在CMake中使用CCache的步骤:

  1. 安装CCache:首先需要在系统上安装CCache。可以使用包管理器进行安装,例如在Ubuntu上使用sudo apt-get install ccache
  2. 配置CMake:在CMakeLists.txt文件中,需要添加以下代码来启用CCache:
代码语言:txt
复制
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(CCACHE_FOUND)

这段代码首先查找CCache程序,如果找到了,则将CCache设置为编译和链接的启动器。

  1. 编译项目:在配置了CMake后,可以使用常规的编译命令进行编译。例如,使用make进行编译:
代码语言:txt
复制
mkdir build
cd build
cmake ..
make

这样,CMake就会使用CCache来加速编译过程。

  1. 查看统计信息:在编译完成后,可以使用ccache -s命令查看统计信息,例如:
代码语言:txt
复制
$ ccache -s
cache directory                     /home/user/.ccache
primary config                       /home/user/.ccache/ccache.conf
secondary config      (readonly)      /usr/share/ccache/ccache.conf
stats file                           /home/user/.ccache/stats
cache hit (direct)                   4
cache hit (preprocessed)            0
cache miss                           2
cache hit rate                      50.00%
called for link                      1
called for preprocessing            0
called for compilation              4
version                              3.4.1

这些统计信息可以帮助您了解CCache的使用情况,例如缓存命中率等。

总之,在CMake中使用CCache可以提高编译速度,减少重新编译时间。只需安装CCache并在CMakeLists.txt文件中添加几行代码,就可以启用CCache。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【系列教程】 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)

(具体使用方法可参考下面的cmake写法)cmake实现代码工程化随着项目越来越复杂,模块越来越多,我们继续手动写makefile去构建项目显然不太合适,为了方便管理、构建复杂项目,使用cmake作为构建工具是个不错的选择...# 当这个变量值为 Debug 的时候,CMake使用变量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 的字符串作为编译选项生成 Makefile; 当变量值为...Release时,则会使用CMAKE_CXX_FLAGS_RELEASE 和 CMAKE_C_FLAGS_RELEASE 的字符串作为编译选项生成 Makefile。...生成整个项目的makefilemkdir buildcd buildcmake ..在build目录下执行make进行编译makeclang-tidy在cmake的配置为了方便clang-tidy在项目中的使用...ccache安装yum install ccache结合cmake使用在根目录的CMakeLists.txt加上下面这段代码find_program(CCACHE_FOUND ccache)if(CCACHE_FOUND

3K30

【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...若想普通用户使用该包,则需要在SYS用户下执行“GRANT EXECUTE ON DBMS_LOCK TO USER_XXX;”命令。 Oracle使用哪个包可以生成并传递数据库告警信息?...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

28.7K30

xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...比如,我们可以使用此功能来构建所有测试。...包源的查找和集成 之前的版本,我们提供了 find_package("cmake::xxx") 来查找 cmake 内部的包,但是这种方式对于用户集成使用还是很繁琐。...因此,新版本,我们进一步改进它,通过 add_requires 来实现统一快速的 cmake 包集成。...add_files("src/*.c") add_packages("zlib") 我们指定 system = true 告诉 xmake 强制从系统调用 cmake 查找包,如果找不到,不再走安装逻辑

2.5K10

何在CDH安装和使用StreamSets

[t1kggp7p0u.jpeg] [gthtxgcxg9.jpeg] 2.文档编写目的 ---- 本文档主要讲述如何在Cloudera Manager 管理的集群安装StreamSets和基本使用。...Field Masker提供固定和可变长度的掩码来屏蔽字段的所有数据。要显示数据的指定位置,您可以使用自定义掩码。...要显示数据的一组位置,可以使用正则表达式掩码来定义数据的结构,然后显示一个或多个组。...对于更一般的管道监控信息,您可以使用度量标准规则和警报。 Jython Evaluator的脚本为没有信用卡号码的信用卡交易创建错误记录。...我们将使用带有record:value()函数的表达式来标识信用卡号码字段/credit_card为空的情况。该函数返回指定字段的数据。

35.7K113

xmake v2.5.9 发布,改进 C++20 模块,并支持 Nim, Keil MDK 和 Unity Build

而通过 Unity Build,我们通过将多个 cpp 文件组合成一个来加速项目的编译,其主要好处是减少了解析和编译包含在多个源文件的头文件内容的重复工作,头文件的内容通常占预处理后源文件的大部分代码...[ 11%]: ccache compiling.release build/.gens/test/unity_build/unity_bar.cpp [ 11%]: ccache compiling.release...使用 armcc 编译 $ xmake f -p cross -a cortex-m3 --toolchain=armcc -c $ xmake 使用 armclang 编译 $ xmake f -p...set_toolchains("msvc") 管理虚拟环境 我们可以使用下面的命令,把指定的虚拟环境配置全局注册到系统,方便快速切换。...") add_rules("utils.install.pkgconfig_importfiles") 更多详情见:#1747 从 CMake 查找包 现在 cmake 已经是事实上的标准

2.5K10

技术干货| 如何在MongoDB轻松使用GridFS?

什么时候使用GridFS 在MongoDB使用GridFS存储大于16 MB的文件。 在某些情况下,在MongoDB数据库存储大型文件可能比在系统级文件系统上存储效率更高。...此外,如果文件均小于16 MB BSON文档大小限制,请考虑将每个文件存储在单个文档,而不是使用GridFS。您可以使用BinData数据类型存储二进制数据。...GridFS通过使用存储桶名称为每个集合添加前缀,将集合放置在一个公共存储桶。...如果希望将其他任意字段添加到文件集合的文档,请将其添加到元数据字段的对象。 GridFS索引 GridFS使用每个块和文件集合上的索引来提高效率。...该索引允许高效地检索文件,本示例所示: db.fs.files.find( { filename: myFileName } ).sort( { uploadDate: 1 } ) 符合GridFS规范的驱动程序将在读取和写入操作之前自动确保此索引存在

6.4K30

Xmake v2.7.1 发布,更好的 C++ Modules 支持

我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。.../Meson + Vcpkg/Conan + distcc + ccache/sccache 项目源码 官方文档 入门课程 新特性介绍 这个版本我们对 C++20 Modules 的实现进行了重构和改进...更灵活的 cmake 包查找 指定链接 对于 cmake 包,我们新增了 link_libraries 配置选项,让用户在查找使用 cmake 包的时候,可以自定义配置包依赖的链接库,甚至对 target..."}}) add_requires("cmake::xxx") -- both 比如指定 config 搜索模式,告诉 cmake 从 XXXConfig.cmake 查找包。...查找包,提供更过灵活的可选配置 #2577: 改进 add_headerfiles(),增加 {install = false} 支持 #2603: 为 ccache 默认禁用 -fdirectives-only

1.6K10

在Excel处理和使用地理空间数据(POI数据)

,用于加载工作底图) III 其他 (非必须,自己下载的卫星图,自己处理的地图,绘制的总平面等——用于自定义底图) 03 具体操作 打开数据表格——[插入]选项卡——三维地图——自动打开三维地图窗口...https://support.office.com/zh-cn/article/三维地图入门-6b56a50d-3c3e-4a9e-a527-eea62a387030) ---- 接下来来将一些[调试]的关键点...I 坐标问题 理论上地图在无法使用通用的WGS84坐标系(规定吧),同一份数据对比ArcGIS的WGS84(4326)和Excel的WGS84、CJ-02(火星坐标系)的显示效果,可能WGS84(...4326)坐标系更加准确一点,也有查到说必应地图全球统一使用WGS84坐标系。...⇩不同坐标系下的对比 结论:建议使用WGS84坐标系(使用Sid分享脚本的用户可略过) II 自定义底图 Excel提供的底图为必应地图,虽然有很多种色彩体系,但不支持去掉路名、点位名称等标签,可能有点乱

10.8K20

xmake v2.5.3 发布,支持构建 linux bpf 程序和 Conda 包集成

另外,在新版本我们还新增了对 Conda 包仓库的集成支持,现在除了能够从 Conan/Vcpkg/brew/pacman/clib/dub 等包仓库集成使用包,还能从 Conda 包仓库中集成各种二进制...为了能够让第三方 cmake 工程正常找到它并使用集成,那么我们可以使用 utils.install.cmake_importfiles 规则在安装 target 目标库文件的时候,导出 .cmake...我们只需要在 config.h.in 配置定义以下变量。...因此在新版本,我们对 xmake 做了改进来更好的支持全版本 NDK 工具链,包括 r22 以上的新版本。...规则去安装 *.cmake 导入文件 #348: 添加 platform.longpaths 策略去支持 git longpaths #1314: 支持安装使用 conda 包 #1120: 添加 core.base.cpu

76030
领券