我想共享使用一个工作区构建的 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。
我设置了以下变量。
CCACHE_BASEDIR=/home/user
USE_CCACHE=1
CCACHE_DIR=/home/user/ccache
CCACHE_SLOPPINESS=time_macros,file_macro
如果我在这里遗漏了什么,请告诉我。