2010-12-18 43 views
8


我看到VC++包含一個名爲/ show include的選項來列出每個翻譯單元中包含文件的層次結構。這似乎是一個非常有用的選擇 - 在大型項目中優化/改進編譯時間。/show在g ++中包含等價選項

問題
是否有GNU G ++編譯器的任何等效選項來獲得這些(類似的輸出)?

回答

7

有多種控制方法。

-MD將列出文件,-MMD將列出非系統文件編譯後的副作用

-M,-MM將產生,而不是編譯名單。

-MQ,-MG,-MP和-MT生成makefile目標片段。 -MF允許你指定一個輸出文件名。

-1

如果您的所有標題都包含在文件的頂部,那麼可以使用一個非常簡短的腳本來完成。

+1

遞歸頭文件的機會很高。還有沒有頭衛兵的雙重包容的影響。處理腳本是可能的,但這將是一個艱難的挑戰。如果編譯器提供了這個選項,那麼我更喜歡那個:)。 – 2010-12-18 17:12:56

+0

如果你所有的頭文件都包含守衛,它應該很簡單(如果我錯了,請給我一個反例,我想不出任何)。如果你不是很好地使用包括守衛......你會遇到更大的問題。 – stnr 2010-12-18 17:19:04

+0

系統頭文件怎麼樣?外部守衛或兩個標題包括彼此有條件的呢?此外,你想知道,編譯器究竟做了什麼,而不是你的腳本認爲它應該做什麼。 – 2013-09-29 12:06:26

11
gcc -H 

將打印使用的頭文件的名稱。