我正在尝试将CMache与CMake一起使用。我在gcc
中放置了名为g++
,c++
和/usr/local/bin
的符号链接。如果我运行make
,请向CMakeLists.txt添加一些不会影响已编译文件的更改(添加未使用的库以强制make build所有目标)并重新运行make
,所有内容都重新编译为如果没有ccache。但是,如果我删除所有CMake生成的文件,然后调用cmake; make
,一切正常,即使我更改了CMakeLists.txt,也会从缓存中检索目标文件。
看起来像CMake生成的东西阻止了访问缓存。我尝试搜索make
和cmake
的详细输出,但找不到任何可能导致此行为的依赖项。
答案 0 :(得分:0)
我建议您安装ccache 3.0(几天前发布)并将CCACHE_LOGFILE
设置为文件。然后,ccache将打印它正在对该文件执行的操作,您可能会对该问题有所了解。
答案 1 :(得分:0)
当cmake运行时,它会将二进制文件的完整路径放入CMakeCache.txt。这是一种速度优化,因此未来的配置速度很快(autoconf需要很长时间的部分原因是它需要重复这么多事情)。如果要强制重新扫描cmake,请删除CMakeCache.txt文件或从该文件中过滤掉包含要刷新的工具路径的变量。