对不同目录中的同一文件具有 ccache 链接

  • 本文关键字:文件 ccache 链接 ccache
  • 更新时间 :
  • 英文 :


我正在使用ccachegit-worktree.如此多的相同文件在多个目录中共享。问题是ccache不检查文件是否相同,而是再次编译。是否有ccache选项允许它检查多个源目录中的缓存?

ccache(从 3.3 版开始默认)在使用-g时将当前工作目录添加到哈希中,这只能在同一源目录中获取缓存命中。另一个类似的问题是,如果在编译器参数中使用绝对路径,则需要使用base_dir配置设置。

有关更多详细信息,请参见 ccache 手册中的"在不同目录中编译"部分:

  • 如果使用 -g(或类似方式)进行生成以将调试信息添加到目标文件,则必须:

    1. 使用-fdebug-prefix-map=old=new选项将调试信息重新定位为通用前缀(例如-fdebug-prefix-map=$PWD=.);或
    2. 设置hash_dir = false.
  • 如果您在命令行上的任何地方使用绝对路径(例如源代码文件路径或编译器选项(如-I-MF的参数),则必须base_dir设置为"基目录"的绝对路径。 然后,ccache 会在计算哈希之前将该目录下的绝对路径重写为相对路径。

相关内容

  • 没有找到相关文章

最新更新