我想确定一个特定文件的所有包含文件,我选择这些文件作为C++项目的起点,然后确定这些包含文件的所有包含文件等等,直到我拥有需要编译的所有内容我选择的文件作为我的出发点。是否有可能跟踪Xcode C++编译依赖关系?
背景:我试图从项目的“中间”取出一个文件,然后“取出”它的所有依赖关系。我可以手动执行此依赖项检查,但无法看到在Xcode IDE中自动执行此操作的明显方法。
任何帮助表示赞赏!
我想确定一个特定文件的所有包含文件,我选择这些文件作为C++项目的起点,然后确定这些包含文件的所有包含文件等等,直到我拥有需要编译的所有内容我选择的文件作为我的出发点。是否有可能跟踪Xcode C++编译依赖关系?
背景:我试图从项目的“中间”取出一个文件,然后“取出”它的所有依赖关系。我可以手动执行此依赖项检查,但无法看到在Xcode IDE中自动执行此操作的明显方法。
任何帮助表示赞赏!
我不知道在Xcode本身的任何支持这样做的。但是,这并不难,特别是如果它只有一个你感兴趣的文件。
您可以将-E
标志添加到g++
,使其在预处理源文件后停止。预处理的源文件将有评论提及所有#include
d文件。这些行可以通过简单的调用grep
来提取。
Xcode中可以编译你的文件时,如果你去Build > Build Results
,开始构建,并点击与线而椭圆形的最右侧的行话说“编译somefile告诉你,它传递的参数的完整列表g++
。 cpp ...“
Doxygen工具能够从源文件和头文件中呈现#include
的图形。这很好,但对于你想要做的事情可能有点重量级。
你使用什么编译器?如果它是MSVC++,那么查看选项的用法:/ P,/ EP/P 当您使用g ++时,请尝试cpp实用程序。
两种方式都可以让你建立文件,包括所有(包含文件的名称将被纳入评论)
xcode的版本我实际上并没有提到的'白色椭圆',但我注意到当你右键点击一个something.cpp文件时有一个'preprocess'命令。这会产生所有预处理器输出并将其放入编辑器窗口中。但似乎并非每个'包含'的文件在输出中实际上都包含'include'这个词,但我认为使用新文件已经开始的指示(在该行的末尾为1)将获得相同的信息(它*出现*为我工作...):somePreprocessorOutput.txt | grep'“1” – Mick 2010-11-23 08:58:38