ccache basedir无法按预期工作

时间:2017-08-31 23:48:32

标签: ccache

我正在尝试使用从不同兄弟目录构建的相同源代码来使用ccache。我已成功将CCACHE_BASEDIR设置为这两个兄弟姐妹的父目录。如果我在bld1中进行构建,然后切换到bld2并构建该副本(再次,这些是相同的源),我没有得到缓存命中。

我现在正在查看设置CCACHE_LOGFILE的日志输出。不幸的是,日志并没有告诉我什么因素/数据计算它查找的哈希值,我只看到很多“没有这样的清单文件”消息(直接查找,似乎)。

我可以使用其他任何方法调试ccache的问题,找出为什么它不能识别这两个源树是否相同?

为了清楚起见,如果我在给定目录中重复构建,我确实在缓存中获得了很多命中 - 很明显ccache正在使用不变的构建路径,它似乎似乎没有正常工作跨目录。

1 个答案:

答案 0 :(得分:0)

如果使用环境变量,解决方案最有可能设置hash_dir = falseCCACHE_NOHASHDIR=1)或将-fdebug-prefix-map=old=new设置为将调试信息重定位到公共前缀(例如-fdebug-prefix-map=$PWD=.)。有关详情,请参阅"Compiling in different directories" section in the ccache manual