2014-11-23 71 views
-1

我有一個大型項目,需要大約半小時才能編譯。更改包含在大型項目的所有模塊中的頭文件

該項目由許多模塊組成,但有一個包含所有模塊之間共享數據的特定頭文件。

目前,我對這個頭文件進行了重大更改,每次我試圖編譯和運行項目以確保一切正常時,編譯需要大量時間(因爲此頭文件文件包含在所有模塊中)。

有沒有辦法克服這個龐大的編譯時間?

回答

1

考慮不要像這樣構建你的項目。

您的文件可能包含一些字符串,整數等。將它們放入一個.c文件中,並提供讀取它們的函數或在標頭中使用extern int foo;等。

如果你不能做到這一點:

  • make -jN將運行並行make高達N工藝(CPU內核數的兩倍似乎運作良好)。
  • 每次更改後都不要重新編譯。重新編譯,當你做了很多改變。
  • 獲取更快的電腦,或使用distcc
  • 請問頭文件真的需要包含在文件中嗎?它可以分解所以只有一些文件包含它的一些?
  • 如果是這樣,考慮重構你的代碼,所以它不。
+0

謝謝。但是什麼是「distcc」 – 2014-11-23 12:45:33

+1

'distcc'允許'cc'(或'gcc')在局域網或互聯網上的多臺機器上透明地運行。我已經添加了一個鏈接。 – abligh 2014-11-23 12:47:17

+0

不,我試圖分解它,但其內容用於所有模塊:( – 2014-11-23 13:31:07

相關問題