2012-08-10 71 views
4

我一直在想......ccache爲什麼不經常使用gcc?

是否有與ccache的一些限制?

如果在以後的編譯時間是如此之大的差別, 爲什麼使用ccache不多Linux開發人員的頻繁?

+1

參考ccache,只需要你有多少開發人員使用它的信息,而這些編譯時的數字嗎? – Useless 2012-08-10 16:15:02

+2

@Useless:一些高級信息:* ccache *是一個用作編譯器封裝的工具,它使用給定的參數調用編譯器並緩存編譯結果。如果目標文件被刪除並且觸發了新的編譯,* ccache *將檢查源文件和編譯器選項,並從緩存中提取結果(如果可用)。基本上它允許'乾淨; make'只是'make'的效率(主要用於makefile依賴不被正確跟蹤的情況)。 [有關如何確定是否可以使用緩存的.o的詳細信息] – 2012-08-10 16:19:30

+1

因此,對於不能編寫正確的makefile的人來說,這是一個難題?如果你總是不得不「乾淨」,那麼構建系統並沒有完成它的工作。 – Useless 2012-08-10 16:33:03

回答

7

我想這簡單的答案是,ccache是偉大的,當構建系統被破壞(即依賴不會被正確跟蹤,並把一切建立正確,您可能需要make clean; make)。在另一方面,如果依賴是正確跟蹤,然後ccache不會產生任何優勢平原make,並實際上將承擔維護緩存和更新它的成本(高速緩存的大小可能巨大取決於大小項目)

+2

+1:寫正確,非遞歸makefile文件,看那些同時建立飛 – Useless 2012-08-10 16:36:11

+1

ccache的也是非常有幫助的,當你在一個廣泛包含的頭改變的東西,然後改回。 (或者說,如果你所做的只是在這樣的頭文件的註釋中修正拼寫錯誤)。 – SamB 2012-09-07 17:44:08

+3

當我切換分支時,我使用的構建系統會跳閘,而ccache真的可以幫助解決這個問題。 – 2012-12-12 13:01:20