问题标签 [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.
c++ - 在 Xcode 4 中使用 ccache
有没有办法将 ccache 与 Xcode 4 一起使用,以改善 C++ 构建时间?
使用环境变量我已将 CC 和 CXX 设置为 ccache,但构建失败,因为 ccache 无法识别 Xcode 4 输出的某些参数。
cmake - 铿锵 + icecc + ccache
我正在尝试使用 clang + icecc + ccache 构建。但我无法让它工作。我在同一个网络上使用 gcc + icecc + ccache 成功构建。
以下是软体版本:
我在 /usr/lib/ccache 中有 clang 符号链接:
我在 /usr/lib/icecc/bin 中有 clang 符号链接:
所以这是我尝试过的:
我尝试在我的 PATH env var 中将 ccache 作为第一个:
但它只是不分发编译。
我尝试过首先使用icecc:
它给了我这个输出:
根据这个线程https://bugzilla.redhat.com/show_bug.cgi?id=377761这是正常的。
我试过只吃icecc:
但它只是不分发编译。
所以我有点卡在这里,我找不到任何说这是不可能的,所以如果有人有解决方案或替代解决方案(与icecc不同的东西)。
谢谢。
cmake - cmake与ccache交叉编译时ar和strip不正确
我交叉编译了一个项目witch ccache:
以下是mips64el-toolchain.cmake:
但我在 CMakeCache.txt 中发现了不正确的值:
ar 和 strip 不是交叉编译器。
如何正确设置它们?
一周前,我发现这是 cmake 的一个错误并修复了
- 模块/CMakeDetermineCCompiler.cmake
- 模块/CMakeDetermineCXXCompiler.cmake
有关详细信息,另请参阅
gcc - CMake 想使用 ccache 而不是 gcc
我正在尝试使用CMake
在 Ubuntu 上编译 C++ 项目,但出现此错误:
我已经安装了 gcc 和所有东西(在 Ubuntu 上构建必需),但我无法阻止 cmake 这样做,除非通过硬编码CMAKE_C_COMPILER
和CMAKE_CXX_COMPILER
在 CMakeLists.txt 中,因为显而易见的原因我不愿意这样做。我尝试安装 ccache,但没有效果。
build - Waf 的缓存选项(WAFCACHE 和/或 ccache)
对于使用 Waf 的项目,我想尝试一些构建加速。我看到 waf 有一个WAFCACHE
选择。那么,就WAFCACHE
足够了,还是我需要ccache
另外设置?(他们可以一起工作),还是WAFCACHE
[内部]使用ccache
?(我在 Waf 书中没有看到任何解释)
- 谢谢。
ccache - ccache 预处理器和直接模式有什么区别?
AFAIK,预处理器模式很简单:你给 ccache 一个预处理源,它对源和命令行参数进行哈希处理,然后存储所有相应的信息,如标准错误、目标文件等。
但是什么是直接模式,为什么它要快得多?它背后的概念是什么?
gcc - 具有相同代码库和多个工具链的 ccache
我们的系统支持使用三种不同的工具链(gcc、icc、diab)构建。我不确定在这种情况下使用 ccache 是否安全。我担心的是:如果我用 gcc 构建,然后用 diab 重建,如果文件及其依赖项相同,我会得到 ccache 命中吗?
在这种情况下,我不想命中,因为我希望使用 diab 重新编译文件。
makefile - 检测编译器是否正在使用 ccache
ccache 不支持某些编译器选项(例如 --coverage)。如果存在不受支持的编译器选项,它会编译但不使用缓存。
启用 ccache 的方法不止一种(修改 PATH,使用 CC/CXX 环境变量)。
我想检测编译器是否使用 ccache,如果是,则禁用不受支持的编译器选项。
我想出的最好的是这样的:
任何想法如何改善这一点?
android - 工作空间之间的 Android ccache 共享
我想共享使用一个工作区构建的 ccache 以供另一个工作区使用,以便使用 ccache 数据的一个副本来编译相同的源代码。
例如:1)创建了一个工作区(home/user/source_code1)。2)从服务器同步代码。3) 使用 USE_CCACHE=1 编译代码
以上将构建我的ccache。现在我执行以下操作
案例1:1)创建了一个工作区(home/user/source_code2)。2)从服务器同步相同的源代码。3) 进行与我在早期工作区中所做的相同的编译。
案例2:1)删除工作区home/user/source_code1 2)重新创建之前的工作区(home/user/source_code1)。2)从服务器重新同步代码。3) 使用 USE_CCACHE=1 编译代码
我希望 source_code2 编译使用从 source_code1 构建的 ccache,当我删除并重新创建相同的工作区时,我需要在已经构建的 ccache 的情况下进行编译。欢迎任何实现相同目标的指针!
我现在在上述两种情况下看到的结果是,尽管构建了 ccache,但它从未使用过,或者 ccache 中没有命中,只要使用新的工作区,它就会继续构建,如果我只是清理构建并重新- 在同一个工作区中编译而不删除任何早期的源代码(home/user/source_code1),然后 ccache 编译跳进去,有一些命中有助于减少构建时间。
知道为什么在使用全新的工作区时我看不到任何 ccache 命中吗?
我总是让“ccache miss”增加而不是“缓存命中(直接),或者,缓存命中(预处理)”。此外,“缓存命中(直接)”始终为 0。
我设置了以下变量。
如果我在这里遗漏了什么,请告诉我。
c - “源文件比可执行文件更新”,但不是
GDB 抱怨我的源文件比可执行文件更新,并且似乎调试信息确实与源文件的旧版本有关,因为 gdb 在空白行上停止:
但可执行文件比源文件更新,请参见此处:
之后我尝试重建make clean
,ccache -C
但出现了同样的问题。当我更新源文件时,我只添加了空格,所以程序逻辑保持不变。我觉得这与它有关,但是由于我清除了 ccache 并清理了 build 和 bin 目录,make clean
我不确定发生了什么上。
版本:
- GNU Make 3.81
- gcc (Debian 4.8.2-16) 4.8.2
- GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
- ccache 版本 3.1.9
- SolydXK - SMP Debian 3.13.5-1 (2014-03-04)