我想「武裝」編譯一個C文件,它包括很多頭文件遞歸..我試圖找到這些頭文件的列表..我有一個更簡單的方法來找到它包含的所有頭文件的列表?C文件包含的所有頭文件的列表
回答
您可以使用GCC C預處理器與它的選項轉儲遞歸包括標題列表:
cpp -M
會告訴你所有的標題包括在內。
您可能需要給它定期構建中使用的所有包含目錄的根目錄。迭代運行它,添加更多包含路徑,直到錯誤停止。
在此使用這個命令的完整形式是:
cpp -M [-I include_directory *] path_to_c_file.c
這適用於哪個工具鏈呢? –
這適用於gcc – piokuc
啊,thx!我熟悉'gcc -M'或'g ++ -M'命令,這個特殊選項對我來說是新的。它是否跟蹤遞歸包含的文件?忘了這個,我知道它是獨立的預處理器... –
大多數編譯器有開關,使他們只是預處理的文件。除此之外,他們將所有的#include
都擴展爲實際的代碼。通常他們會在原始包含的行中包含評論(正確的C評論)。因此,您可以搜索所有此類評論的結果預處理代碼以收集所有包含的標題。
它通常不是註釋,而是'#line'指令。 –
而且:交換機通常是'-E'(或'/ E')。 –
根據http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html#Preprocessor-Options -H和-M選項可用於此目的。
另一個選擇是使用http://www.stack.nl/~dimitri/doxygen/並生成你的項目文件,之後你可以檢查它看到文件依賴關係:),它是首選,因爲它支持多種語言:C,C++,Objective-C,C#,PHP ,Java,Python,IDL(Corba和Microsoft風格),FORTRAN,VHDL,Tcl。
- 1. 包含所有文件信息的C++文件列表
- 2. 如何列出包含頭文件中的所有文件
- 3. 包含所有其他頭文件的單頭文件?
- 4. 獲取項目中每個文件包含的所有頭文件的列表
- 5. 如何包含所有boost頭文件?
- 6. C++頭文件包含
- 7. C++頭文件包含
- 8. C++包含頭文件
- 9. C++包含頭文件
- 10. 如何「觸摸」包含特定頭文件的所有文件?
- 11. C - 列出文件夾和所有子文件夾中包含的文件
- 12. TestNG.xml套件包含所有文件包所有文件
- 13. C頭文件中的包含循環
- 14. 包含頭文件
- 15. 包含文件的T4「頭文件」
- 16. xcode包含的頭文件
- 17. 有沒有辦法在Linux上列出C++可執行文件中包含的所有頭文件?
- 18. C++頭文件本身不包含依賴文件頭
- 19. C# - 獲取不包含隱藏文件的文件列表
- 20. C++ #ifndef用於包含文件,爲什麼所有頭文件都用於頭文件?
- 21. 臨時文件與所有包含的標頭的內容
- 22. 頭文件C++的多個包含文件
- 23. C++頭文件包含錯誤
- 24. C++包含頭文件問題
- 25. C遞歸頭文件包含問題?
- 26. 在C++中包含頭文件
- 27. C++頭文件包含<>路徑
- 28. 何時包含C++頭文件?
- 29. 外部頭文件包含在C++中
- 30. C頭文件包含錯誤
是的,看看.C文件。或者,您也可以使用-E編譯器選項來查看主標頭。 – Shark
以下是GCC提示:http://stackoverflow.com/questions/42308/tool-to-track-include-dependencies –
for Visual Studio http://msdn.microsoft.com/en-us/library/hdkef6tk% 28v = vs.90%29.aspx – 2013-04-12 16:23:16