2009-08-04 63 views
4

說,我想有一個工具(或腳本?)服用項目(或h文件),建設「包括」搜索樹納入它(中納入的納入等等等等)。有沒有這樣的東西?我應該自己寫這些嗎[當然,我是:),但也許有人已經寫了它或可能有一個想法如何得到它]?您是否知道項目文件中包含文件的工具構建樹?

+0

相關(Visual Studio中):http://stackoverflow.com/q/1137966/711006 – Melebius 2016-07-26 07:09:38

回答

4

不能完全確定這就是你以後,但你可以很容易地從生成的C鹼基文件後CPP處理的文件,並grepping出來的文件/行號註釋,例如獲得包括列表,使用gcc

gcc -E main.c {usual flags} | grep '#' | cut -d' ' -f3 | sort | uniq 

其中main.c是你的base c文件。

+0

這是我過去的做法(MSVC除外)。自動化的難點在於從項目或生成文件中獲得正確的編譯標誌),因爲這些可以影響什麼時候包含哪些文件。 – iain 2009-08-04 11:15:11

1

如果我沒有記錯,doxygen可以做到這一點。

+0

如何處理預處理指令和include路徑? – sehe 2011-07-15 08:56:10

+0

@sehe:我還沒有在很長一段時間與doxygen的上場的機會。你將不得不嘗試。然而,從我記憶中來看,它對奇怪配置的支持相當令人印象深刻,而且它的發展非常迅速。 – sbi 2011-07-15 23:23:03

3

我知道這是一個老問題,比GCC /克++ -E輸出一個稍微有用的輸出單獨也將使用-H標誌(代替或除了):

g++ -H {my -I and other flags} -E -o /dev/null file.cpp

這裏是一個示例輸出,樹結構有助於找出誰包含內容 作爲獎金也會列出在底部哪些文件可以從受益包括後衛

. generated/gen-cpp/File.h 
.. /usr/include/thrift/TProcessor.h 
... /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/string 
.... /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++config.h 
..... /usr/include/bits/wordsize.h 
..... /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/os_defines.h 
...... /usr/include/features.h 
....... /usr/include/sys/cdefs.h 
........ /usr/include/bits/wordsize.h 
....... /usr/include/gnu/stubs.h 
........ /usr/include/bits/wordsize.h 
........ /usr/include/gnu/stubs-64.h 
..... /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/cpu_defines.h 
.... /usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stringfwd.h 

... 
0

Eclipse CDT的有Window下的Include Browser - >顯示視圖 - >其他... - > C/C++ - >包含瀏覽器。

0

Include Finder是一個非常有用的工具。它有一些錯誤,並且在一段時間內沒有更新,但作者確實提供了源代碼,所以您可以根據自己的喜好進行修改。

enter image description here

相關問題