ccache不会在不删除CMake文件的情况下点击缓存

时间:2010-05-28 15:54:00

标签: cmake ccache

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

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

2 个答案:

答案 0 :(得分:0)

我建议您安装ccache 3.0(几天前发布)并将CCACHE_LOGFILE设置为文件。然后,ccache将打印它正在对该文件执行的操作,您可能会对该问题有所了解。

答案 1 :(得分:0)

当cmake运行时,它会将二进制文件的完整路径放入CMakeCache.txt。这是一种速度优化,因此未来的配置速度很快(autoconf需要很长时间的部分原因是它需要重复这么多事情)。如果要强制重新扫描cmake,请删除CMakeCache.txt文件或从该文件中过滤掉包含要刷新的工具路径的变量。