2016-10-26 105 views

回答

4

預編譯頭文件和ccache用於完全不同的用例。 ccache可以與預編譯頭一起使用,它們不是互斥的。

ccache緩存整個給定的源文件,標題和全部,緩存編譯後的對象模塊。從技術上講,ccache需要整個預處理源翻譯單元,對其進行散列並緩存結果對象模塊。

當不同的源翻譯單元重複使用相同的頭文件時,預編譯頭可節省一點時間。但是,如果相同的源代碼被重複編譯,預編譯頭文件不會有幫助(超出使用預編譯頭文件的唯一好處)。這就是ccache進來的地方,ccache悄悄地跳過了整個編譯階段,只是從緩存中獲取以前編譯的目標模塊。

因此,比較哪種方法更好,ccache或預編譯頭文件沒有意義。他們解決兩個不同的問題。