2017-04-11 114 views

回答

1

如果使用-g,ccache(默認自版本3.3以來)將當前工作目錄添加到哈希,這隻能使得在同一源目錄中獲得高速緩存命中成爲可能。另一個類似的問題是,如果在編譯器參數中使用絕對路徑,則需要使用base_dir配置設置。

"Compiling in different directories" section in the ccache manual更多細節:

  • 如果用-g(或類似)建立調試信息添加到目標文件,你必須:

    1. 使用-fdebug-prefix-map=old=new選項將調試信息重定位到一個通用前綴(例如-fdebug-prefix-map=$PWD=.);或者
    2. 集合hash_dir = false
  • 如果在命令行上的任何位置使用絕對路徑(例如,源代碼文件路徑或編譯器等-I-MF選項的參數),則必須設置base_dir爲絕對路徑到「基目錄」。然後,ccache將在計算散列之前將該目錄下的絕對路徑重寫爲相對路徑。

相關問題