问题标签 [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.

0 投票
2 回答
1883 浏览

c++ - 在 Xcode 4 中使用 ccache

有没有办法将 ccache 与 Xcode 4 一起使用,以改善 C++ 构建时间?

使用环境变量我已将 CC 和 CXX 设置为 ccache,但构建失败,因为 ccache 无法识别 Xcode 4 输出的某些参数。

0 投票
1 回答
3528 浏览

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不同的东西)。

谢谢。

0 投票
1 回答
2105 浏览

cmake - cmake与ccache交叉编译时ar和strip不正确

我交叉编译了一个项目witch ccache:

以下是mips64el-toolchain.cmake:

但我在 CMakeCache.txt 中发现了不正确的值:

ar 和 strip 不是交叉编译器。

如何正确设置它们?

一周前,我发现这是 cmake 的一个错误并修复了

  • 模块/CMakeDetermineCCompiler.cmake
  • 模块/CMakeDetermineCXXCompiler.cmake

有关详细信息,另请参阅

https://launchpad.net/~likemartinma/+archive/devel

0 投票
2 回答
4926 浏览

gcc - CMake 想使用 ccache 而不是 gcc

我正在尝试使用CMake在 Ubuntu 上编译 C++ 项目,但出现此错误:

我已经安装了 gcc 和所有东西(在 Ubuntu 上构建必需),但我无法阻止 cmake 这样做,除非通过硬编码CMAKE_C_COMPILERCMAKE_CXX_COMPILER在 CMakeLists.txt 中,因为显而易见的原因我不愿意这样做。我尝试安装 ccache,但没有效果。

0 投票
2 回答
568 浏览

build - Waf 的缓存选项(WAFCACHE 和/或 ccache)

对于使用 Waf 的项目,我想尝试一些构建加速。我看到 waf 有一个WAFCACHE选择。那么,就WAFCACHE足够了,还是我需要ccache另外设置?(他们可以一起工作),还是WAFCACHE[内部]使用ccache?(我在 Waf 书中没有看到任何解释)

- 谢谢。

0 投票
2 回答
1501 浏览

ccache - ccache 预处理器和直接模式有什么区别?

AFAIK,预处理器模式很简单:你给 ccache 一个预处理源,它对源和命令行参数进行哈希处理,然后存储所有相应的信息,如标准错误、目标文件等。

但是什么是直接模式,为什么它要快得多?它背后的概念是什么?

0 投票
1 回答
756 浏览

gcc - 具有相同代码库和多个工具链的 ccache

我们的系统支持使用三种不同的工具链(gcc、icc、diab)构建。我不确定在这种情况下使用 ccache 是否安全。我担心的是:如果我用 gcc 构建,然后用 diab 重建,如果文件及其依赖项相同,我会得到 ccache 命中吗?

在这种情况下,我不想命中,因为我希望使用 diab 重新编译文件。

0 投票
2 回答
1329 浏览

makefile - 检测编译器是否正在使用 ccache

ccache 不支持某些编译器选项(例如 --coverage)。如果存在不受支持的编译器选项,它会编译但不使用缓存。

启用 ccache 的方法不止一种(修改 PATH,使用 CC/CXX 环境变量)。

我想检测编译器是否使用 ccache,如果是,则禁用不受支持的编译器选项。

我想出的最好的是这样的:

任何想法如何改善这一点?

0 投票
1 回答
367 浏览

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。

我设置了以下变量。

如果我在这里遗漏了什么,请告诉我。

0 投票
1 回答
18110 浏览

c - “源文件比可执行文件更新”,但不是

GDB 抱怨我的源文件比可执行文件更新,并且似乎调试信息确实与源文件的旧版本有关,因为 gdb 在空白行上停止:

但可执行文件比源文件更新,请参见此处:

之后我尝试重建make cleanccache -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)