我使用gcc(作爲g++
運行)和GNU make。 我使用gcc預編譯頭文件precompiled.h
,創建precompiled.h.gch
;在一個Makefile以下行做的:使用GNU創建幾個預編譯頭文件make
# MYCCFLAGS is a list of command-line parameters, e.g. -g -O2 -DNDEBUG
precompiled.h.gch: precompiled.h
g++ $(MYCCFLAGS) -c $< -o [email protected]
一切都很好,直到我不得不使用不同的命令行參數運行g++
。 在這種情況下,即使存在precompiled.h.gch
,也無法使用,編譯速度會更慢。 在我已閱讀的gcc文檔中,爲了處理這種情況,我必須創建一個名爲precompiled.h.gch
的目錄,並將 預編譯頭文件放在那裏, 每個g++
命令行參數集合包含一個文件。
所以現在我想知道我應該如何改變我的Makefile來告訴g++
以這種方式創建 gch-files。 也許我可以運行g++
只是爲了測試它是否可以使用precompiled.h.gch
目錄中的任何現有文件 , ,如果沒有,則使用唯一文件名生成新的預編譯頭。
gcc是否支持做這樣的測試?
也許我可以用另一種方式實現我想要的嗎?
'-Winvalid-pch'會給你一個警告。與'-Werror'一起使用時,如果gcc發現無效的.gch,它將停止編譯。 – bobbogo 2011-01-12 19:10:48
@bobbogo謝謝,這正是我需要的!它會爲我節省一些麻煩。 – anatolyg 2011-01-16 12:25:39