标签: ccache

如何在CMake中使用CCache?

我想执行以下操作:如果PATH中存在CCache,请使用"ccache g ++"进行编译,否则使用g ++.我尝试编写一个包含的小型my-cmake脚本

    CC="ccache gcc" CXX="ccache g++" cmake $*
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用(运行make仍然不使用ccache;我使用CMAKE_VERBOSE_MAKEFILE检查了这一点).

更新:

根据此链接,我尝试将脚本更改为

     cmake -D CMAKE_CXX_COMPILER="ccache" -D CMAKE_CXX_COMPILER_ARG1="g++" -D CMAKE_C_COMPILER="ccache" -D CMAKE_C_COMPILER_ARG1="gcc" $*
Run Code Online (Sandbox Code Playgroud)

但cmake抱怨说使用编译器ccache测试失败(可以预料).

c++ unix cmake ccache

80
推荐指数
8
解决办法
3万
查看次数

是否有Visual Studio的Ccache?

我知道scons实现了它的功能ccache,但我坚持使用另一个构建系统.
我也知道gocachesourceforge上有一个项目旨在ccache为其他编译器实现类似功能,但似乎并不完整.

build visual-studio ccache

30
推荐指数
2
解决办法
1万
查看次数

g ++,colorgcc和ccache

试图结合ccache和colorgcc.以下链接文字:

  • 我的g ++是colorgcc的软链接
  • 〜/ .colorgccrc包含行:"g ++:ccache/usr/bin/g ++"

运行g ++ --version时接收:

Can't exec "ccache  /usr/bin/gcc": No such file or directory at /usr/lib/perl5/5.8.8/IPC/Open3.pm line 246.
open3: exec of ccache  /usr/bin/gcc --version failed at /usr/local/bin/colorgcc/gcc line 208
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决?

gcc ccache

21
推荐指数
2
解决办法
1万
查看次数

如何有选择地使用ccache?

我必须编译用C++编写的应用程序的多个版本,我认为使用ccache来加速这个过程.

ccache howtos有一些示例建议创建名为gcc,g ++等的符号链接,并确保它们出现在原始gcc二进制文件之前的PATH中,因此使用ccache.

到目前为止一切都那么好,但我只想在编译这个特定的应用程序时使用ccache,而不是总是如此.

当然,我可以编写一个shell脚本,每次我想编译应用程序时都会尝试创建这些符号链接,并在编译应用程序时删除它们.但这看起来像文件系统滥用给我.

是否有更好的方法有选择地使用ccache,而不是总是?

为了编译单个源代码文件,我可以手动调用ccache而不是gcc并完成,但我必须处理一个复杂的应用程序,该应用程序使用自动构建系统来存储多个源代码文件.

linux gcc ccache

19
推荐指数
2
解决办法
1万
查看次数

在docker内部构建时使用ccache

我正在努力将C++项目的构建移动到docker镜像中.该图像将由Jenkins工作构建和推送.在docker之前,我大量使用ccache来加速我在Jenkins上的构建,特别是在构建几乎没有变化的情况下.docker的问题在于构建现在在隔离的环境中运行,因此我无法再从ccache中受益.有没有办法在仍然利用ccache的同时构建一个短暂的容器内部?

ccache docker

12
推荐指数
2
解决办法
2544
查看次数

ccache cache miss很慢的编译速度很慢

刚开始使用基于本教程的 ccache ,到目前为止我喜欢它.然而,缓存错过的速度非常慢.这是我的结果:

Regular clean build without ccache : 1m40s
First build with ccache : 4m36s
Second build with ccache : 30s
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始调试.性能页面(https://ccache.samba.org/performance.html)提到了make文件的复杂性如何降低编译速度,但在这种情况下我使用Xcode,因此ccache的调用应该相对较快.我期待一些性能下降,但不是这么多!

使用版本3.2.5有我当前的设置:

export CCACHE_MAXSIZE=3G
export CCACHE_HARDLINK=true
export CCACHE_SLOPPINESS=pch_defines,file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches
Run Code Online (Sandbox Code Playgroud)

请注意,如果改变了某些内容,我会使用pch.

c++ performance xcode ccache ios

9
推荐指数
1
解决办法
1158
查看次数

是否可以使用ccache或类似方法加速clang-tidy?

自从ccache在我们的CI服务器上使用以来,我们发现在构建时间方面的瓶颈现在是我们的静态分析过程clang-tidy,以及其他工具。有人知道有一种clang-tidy类似于ccache普通编译器的加速方法吗?

c c++ static-analysis ccache clang-tidy

9
推荐指数
1
解决办法
196
查看次数

使用ccache/clang编译Qt代码时,请避免多余的警告

我和这个家伙有同样的问题.使用clang和ccache进行编译每次遇到Q_OBJECT时都会收到此警告:

warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign]
Run Code Online (Sandbox Code Playgroud)

这只发生在使用ccache时,单独使用clang编译相同的代码工作正常.

宏扩展似乎存在类似的问题,其中建议的解决方案是设置环境变量

CCACHE_CPP2=yes
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎并没有解决我的问题,或者说我做错了.

我试过了:

  • 从命令行构建

    • CCACHE_CPP2=yes ninja

    • export CCACHE_CPP2=yes ninja

  • 从Qt Creator CCACHE_CPP2构建,添加到"构建环境"

我还能做些什么来解决这个宏扩展问题吗?我特别不希望全局禁用警告(因为这很糟糕)或本地(因为这意味着将所有宏包装在特定于编译器的样板文件中).

c++ qt clang ccache

8
推荐指数
1
解决办法
1139
查看次数

如何通过 cmake 在 Windows MSVC 上使用 ccache > 4.6.1?

版本 4.6.1开始,ccache 支持使用 msvc 进行编译。

在我的 Windows 环境中,我安装了 ccache,并可以通过命令行使用它。我尝试通过以下方式将 ccache 集成到我的 cmake 项目中:

根 CMakeLists.txt:

find_program(CCACHE_FOUND ccache) 
if(CCACHE_FOUND)
    message("CCACHE is found")
    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) # Less useful to do it for linking, see edit2
else(CCACHE_FOUND)
    message("CCACHE is NOT found")
endif(CCACHE_FOUND)
Run Code Online (Sandbox Code Playgroud)

这是我在 CMakePresets.json 中的 cmake 配置:

{
"name": ",
"hidden": false,
"generator": "Visual Studio 17 2022",
"toolset": {
"value": "host=x64",
"strategy": "external"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe", …
Run Code Online (Sandbox Code Playgroud)

c++ cmake visual-c++ ccache

8
推荐指数
1
解决办法
2738
查看次数

如何在Linux上启用ccache

关于ccache在GNU/Linux 上启用的文档很少.以下是launchpad.net的回复:

目前,我认为启用ccache的最佳方法是在路径的前面添加"/ usr/lib/ccache".如果要在默认情况下为所有用户启用它,请更改/ etc/environment中的PATH变量.

有人可以给我更多关于启用的信息ccache吗?

linux gcc gnu ccache

7
推荐指数
4
解决办法
1万
查看次数

标签 统计

ccache ×10

c++ ×5

gcc ×3

cmake ×2

linux ×2

build ×1

c ×1

clang ×1

clang-tidy ×1

docker ×1

gnu ×1

ios ×1

performance ×1

qt ×1

static-analysis ×1

unix ×1

visual-c++ ×1

visual-studio ×1

xcode ×1