问题标签 [ccache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ccache - 'ccache' configuration
I have a question related to ccache configuration. In our development environment we have hundreds of make files that build objects using absolute paths.
I wanted to speed up the process and use ccache. Unfortunately when compiling from different locations I can see cache misses. Below is an example of simplified situation where source files are placed in different directories. How do I have to setup ccache to get the proper hit ratio?
I tried to play with setting the CCACHE_BASEDIR variable with no success:
npm - 我可以让 npm / gyp 使用 ccache 吗?
ccache
是一种通过缓存结果来加速构建您之前已经构建的 C 二进制文件的绝妙方法。(另一个很棒的工具是distcc
,它将代码传递给其他机器进行并行编译!)
我可以npm
在使用ccache
它构建 C 文件时使用gyp
吗?
这是一种测试方法:
如果我们可以使用ccache
,那么在第二次尝试时它应该会明显更快。
另一种查看是否ccache
被调用以及是否有帮助的方法是在构建正在进行时在单独的终端中运行它:
这将显示ccache
的统计信息的实时更新。
android - 如果编译 AOSP/CM 被中断会发生什么
我有两个猜测:
它从一开始就编译,但使用 CCACHE 更快
它继续,通过检测已编译的模块
如果我清除 CCACHE 而不是 OUT 目录会发生什么?它会继续还是重新开始?
caching - 清除 ccache 或使用多个 ccache 目录的原因
使用 CCACHE 时使用多个缓存目录或完全清除缓存的实际原因是什么?
Buildroot BR2_CCACHE 配置选项的帮助说明说:
请注意,当编译器以不兼容的方式更改时,Buildroot 不会尝试使缓存内容无效。因此,如果您更改编译器版本和/或配置,您有责任通过删除 $HOME/.buildroot-ccache 目录来清除 ccache 缓存。
如果我理解正确,CCACHE 会识别不同的编译器版本并且缓存是在每个编译器的基础上完成的。那么,描述所指的那些情况是什么?
此外,一些消息来源似乎建议应定期清除缓存。其他人指出缓存达到“最大缓存大小”阈值时会自动清理。
显然,如果缓存的数据已损坏,那么您需要对其进行处理。还有其他清除缓存的原因吗?保留一个缓存不是很有意义吗?
c++ - 使用 ccache / clang 编译 Qt 代码时避免多余的警告
我和这个人有同样的问题。使用 clang 和 ccache 编译时,每次遇到 Q_OBJECT 时都会收到此警告:
这仅在使用 ccache 时发生,单独使用 clang 编译相同的代码可以正常工作。
宏扩展似乎存在类似的问题,建议的解决方案是设置环境变量
不幸的是,这似乎不能解决我的问题,或者我做错了。
我努力了:
从命令行构建
CCACHE_CPP2=yes ninja
export CCACHE_CPP2=yes ninja
从 Qt Creator 构建,添加
CCACHE_CPP2
到“构建环境”
我还能做些什么来解决这个宏扩展问题吗?我特别不想在全局(因为这很糟糕)或本地(因为这意味着将所有宏包装在特定于编译器的样板文件中)禁用警告。
gcc - Ccache 不适用于 gcc -M 标志?
我正在尝试使用 ccache 来加快我的重建速度,我在日志中注意到了这一点:
根据我的经验,您需要类似 -M 标志的东西才能正确重建 make 或其等效触发器。似乎很奇怪,ccache 会被几乎每个项目构建中必须存在的选项所绊倒。我错过了什么吗?有更好的选择吗?
这是 w/ ccache-3.2.1。
编辑:我也尝试过 -MM ,但没有运气。
c - ccache 的“要求链接”是什么意思
ccache 统计“调用链接”是什么意思。我以为 ccache 只包装了编译器,而不是链接器?
c++ - 使用ccache编译源时如何在eclipse中设置C++断点?
最近,我们的开发团队开始使用 ccache 来做更快的编译(编译是从沙箱 /usr/x 完成的)。
现在,当我从我的沙箱 (/usr/y) 编译并尝试在 Eclipse(GDB (DSF) 进程启动器)中的代码中设置断点时,它无法找到该文件。进一步调查显示,Eclipse gdb使用文件的完整路径设置断点(例如b /usr/y/untouchedFile.cpp:1234),但实际路径(在gdb调试器中)实际上是/usr/x/untouchedFile .cpp。
唯一可行的方法是通过键入在控制台上设置断点,并在命中断点时进行源文件映射。
我想通过单击代码行(以前在ccache之前工作)来设置断点。
我想知道是否有办法解决这个问题。
谢谢!
android - 在 OSX 上为 Android Rom 创建 ccache 时出错
我正在尝试使用 ccache 更快地构建 rom。
http://source.android.com/source/building.html上的链接提供了以下代码:
但是我在第 3 行收到以下错误
即使我进入目录并尝试通过“./ccache -M 50G”执行它,它也会给出相同的“无法执行二进制文件”错误。
你们能告诉我我做错了什么吗?
precompiled-headers - 在使用 ccache 时如何获得预编译头文件的全部好处?
我的项目有时会受益于 ccache,所以我一直在使用 ccache。我现在正在添加预编译的标头。一些消息来源表明两者是不相容的,必须在它们之间进行选择。但我在 ccache 的文档中发现它在某种程度上支持 PCH: https ://ccache.samba.org/manual.html#_precompiled_headers
事实上,当我在使用 Clang 的选项时尝试使用 ccache 构建 .o 文件时-include-pch
,我看到 ccache 成功地缓存了 .o。第一次编译尝试需要 1.5 秒,第二次只需要 0.05 秒(因为 ccache 已经完成了它的工作)。
问题在于,如果我使用clang++
而不是 with运行相同的编译命令/usr/lib/ccache/clang++
,则需要 0.5 秒......除非我离开该-include-pch
部分,在这种情况下大约需要 1.5 秒。似乎 ccache 可能导致我的 PCH 被忽略,或者其他什么。
我已按照说明进行操作(来自上面的链接)。如那里所指定,我的 ccache.conf 如下所示:
我已经尝试了所有我能想到的#include
、、、-include
的-include-pch
合理组合。-fpch-preprocess
编译总是需要 1.5 秒,然后是 0.05 秒,而应该需要 0.5 秒,然后是 0.05 秒。
是否有可能完成这项工作,还是我必须在 ccache 和 PCH 之间做出选择?