0

我正在尝试将 ccache 与 CMake 一起使用。我已将符号链接命名为gcc,g++c++in /usr/local/bin。如果我运行make,向 CMakeLists.txt 添加一些不影响已编译文件的更改(添加未使用的库只是为了强制构建所有目标)并重新运行make,所有内容都会重新编译,就好像没有 cca​​che 一样。但是,如果我删除所有 CMake 生成的文件然后调用cmake; make,一切正常,并且从缓存中检索目标文件,即使我更改了 CMakeLists.txt。

看起来 CMake 生成的东西阻止了缓存。我尝试搜索 and 的详细输出makecmake但找不到任何可能导致此行为的依赖项。

4

2 回答 2

0

我建议您安装 ccache 3.0(几天前发布)并设置CCACHE_LOGFILE为文件。ccache 然后将打印它对该文件所做的事情,您可能会得到有关问题的线索。

于 2010-06-23T06:47:45.840 回答
0

当 cmake 运行时,它将二进制文件的完整路径放入 CMakeCache.txt。这是一种速度优化,以便将来的配置更快(autoconf 花费如此长时间的部分原因是它一遍又一遍地寻找很多东西)。如果要强制 cmake 重新扫描,请删除 CMakeCache.txt 文件或从该文件中过滤掉包含要刷新的工具的路径的变量。

于 2011-11-09T04:20:25.647 回答