我工作的是一個組,其中我們的測試存儲桶有數百個.c源程序。 .c程序相當小,並且都包含相同的10個.h頭文件。這些.h文件相當大。編譯和鏈接許多.c源程序使用的.h頭文件
每次我們得到一個新的庫文件來鏈接我們的測試程序來測試時,我們運行一個腳本來重新編譯並運行我們的測試桶。問題在於編譯需要相當長的時間,特別是如果環境是虛擬的。
有沒有辦法編譯.h頭文件一次,放入一個單獨的目標文件,並有許多.c源文件鏈接到所述目標文件?我認爲這會加快編譯時間。我願意更改/刪除.c源程序中的所有#include。
任何有關加快編譯時間的建議都非常感謝。
另外,我應該說一個腳本執行makefile PER .c源碼測試程序! makefile不會被告知編譯當前目錄中的所有程序。每個測試程序都被編譯成自己的可執行文件。
頭文件未編譯。它們包含在.c文件中,然後編譯。在大多數情況下,頭文件只包含允許.c文件引用函數,結構體,數據類型等的聲明,而不用在.c文件中定義它們。 –
@master_latch不幸的是,創建頭文件的程序員實際上編寫了數千行的實現代碼。他們並未將其用於申報目的。 .h文件中的代碼是所有.c文件測試程序中使用的共享代碼....所以,聽起來像「預編譯頭文件」可能是一個解決方案。或者可能創建一個包含.h頭文件的虛擬.c文件,然後創建一個對象,然後將所有.c文件鏈接到該文件? – slowmo
哦,我明白了。我沒有意識到預編譯頭文件是一件事 - 但現在我想到了,我記得在MSVS中將它看作是一個選項。很高興有人能夠回答你的問題! –