2010-11-21 79 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实用程序。

两种方式都可以让你建立文件,包括所有(包含文件的名称将被纳入评论)