2010-11-21 78 views
0

我想確定一個特定文件的所有包含文件,我選擇這些文件作爲C++項目的起點,然後確定這些包含文件的所有包含文件等等,直到我擁有需要編譯的所有內容我選擇的文件作爲我的出發點。是否有可能跟蹤Xcode C++編譯依賴關係?

背景:我試圖從項目的「中間」取出一個文件,然後「取出」它的所有依賴關係。我可以手動執行此依賴項檢查,但無法看到在Xcode IDE中自動執行此操作的明顯方法。

任何幫助表示讚賞!

回答

0

我不知道在Xcode本身的任何支持這樣做的。但是,這並不難,特別是如果它只有一個你感興趣的文件。

您可以將-E標誌添加到g++,使其在預處理源文件後停止。預處理的源文件將有評論提及所有#include d文件。這些行可以通過簡單的調用grep來提取。

Xcode中可以編譯你的文件時,如果你去Build > Build Results,開始構建,並點擊與線而橢圓形的最右側的行話說「編譯somefile告訴你,它傳遞的參數的完整列表g++。 cpp ...「

Doxygen工具能夠從源文件和頭文件中呈現#include的圖形。這很好,但對於你想要做的事情可能有點重量級。

+0

xcode的版本我實際上並沒有提到的'白色橢圓',但我注意到當你右鍵點擊一個something.cpp文件時有一個'preprocess'命令。這會產生所有預處理器輸出並將其放入編輯器窗口中。但似乎並非每個'包含'的文件在輸出中實際上都包含'include'這個詞,但我認爲使用新文件已經開始的指示(在該行的末尾爲1)將獲得相同的信息(它*出現*爲我工作...):somePreprocessorOutput.txt | grep'「1」 – Mick 2010-11-23 08:58:38

0

你使用什麼編譯器?如果它是MSVC++,那麼查看選項的用法:/ P,/ EP/P 當您使用g ++時,請嘗試cpp實用程序。

兩種方式都可以讓你建立文件,包括所有(包含文件的名稱將被納入評論)