XCode 4:静态分析头文件

时间:2011-10-25 23:44:35

标签: xcode clang

我有一个C ++项目(GNU样式,带有Makefile),我想使用XCode作为我的IDE,因为我想使用自动完成和实时检测问题的Clang功能。

为此,我创建了一个新项目 - >命令行工具,然后只导入我的所有文件。如果我继续编辑.cpp文件,XCode会检测实时问题(如果我编写虚假代码,会给我一个错误)。但是,这对我的.h文件不起作用。有趣的是,如果我在其中一个.cpp文件中#include那些头文件,它似乎有效。

如何解决这个问题,而不必包含源文件中的头文件? 另外,我不确定这种创建项目(命令行工具)的方式是否正确。我真的只想使用XCode进行自动完成和问题检测,我不想通过XCode构建它(运行“make”就足够了)。

1 个答案:

答案 0 :(得分:1)

只需为您的项目创建一个“翻译”文件。这基本上是一个.c,.cpp,.m等文件,其中包含您想要编入索引的标题。

潜在的问题是Xcode确实没有足够的上下文来索引世界(或它导航到的任何文件)。标头的单个索引表示不正确。它可能看起来很愚蠢,但是当你想到它时,它是有道理的,因为每个目标都有不同的构建设置,而单数翻译不会正确应用它们。

Xcode 4.0以您想要的方式(基本上,所有内容都是根据当前项目的构建设置进行索引)完成的,但是在非常重要的项目中,特别是具有不同构建设置的项目中,这些都是错误的并且无法使用。例如:它将应用错误项目的前缀标头,或者不知道如何正确构造包含图形,因此它只会在标题上抛出错误(在某些情况下)。

对此有一个有益的副作用是您的翻译文件可用于快速非正式地检查您包含的文件,然后才能真正开始完整版本。为此目的,我实际上在库中有翻译文件(并验证依赖性/包含是否正确)。

如果您真的不喜欢翻译文件,可以跳回Xcode 4.0或尝试MacVim的clang_complete。