2009-09-25 30 views
2

我刚开始使用xcode并学习Objective-C & Cocoa,将Xcode 3.2中的编译器交换为Clang以增强错误检查和静态分析器会有帮助。我只是好奇,如果给定的额外会有帮助,或者我的学习会更好地坚持默认设置?使用Clang开始时明智吗?

千恩万谢

加里

+0

这是什么“叮叮”?你可以提供一个链接,我很好奇... – 2009-09-25 18:33:45

+0

他的意思是“叮当”:http://clang.llvm.org/ – 2009-09-25 18:36:43

+0

我被混淆了棘轮与叮叮:)我的意思是铛,上面的问题编辑纠正措辞。 – fuzzygoat 2009-09-26 16:22:14

回答

3

有使用CLANG几个选项:

  1. 运行构建和分析,看看铛 结果。

  2. 在一个 配置项目设置,您可以检查 “运行静态分析仪”框和CLANG 将每次编译时间运行。

  3. 您还可以将编译器 从GCC 4.x更改为CLANG/LLVM。 显示更多的错误和CLANG 警告(一个例子是, NSLog(@"A value is %@:%@", value) 会警告你,你没有通过 足够的参数)。

我建议选择2 - 如果你运行静态分析与每个版本,它并不需要更多的时间,你会发现,如果你正在做一些奇怪的向右走,而不是固定之后的一堆错误。它给你的明确信息实际上提供了很大的教育价值,所以如果你只是在学习,它就更有意义了!

由于更大的错误检查,选项3很适合不时运行。但是,目前XCode没有用于iPhone设备的CLANG/LLVM编译器,因此您只能在编译模拟器时使用该设置。最好的方法是创建一个名为“Debug CLANG”的调试配置副本(在项目设置配置选项卡中),并将该配置设置为使用CLANG/LLVM编译器并运行静态分析器。请注意,创建新配置后,您必须退出设置,将其选为活动配置(通过右上方的下拉菜单),然后返回到项目设置以编辑值。

然后在日常使用中,您只需使用“调试”设置使用静态分析器进行编译,并可能每周切换到“调试CLANG”一次,以查看是否存在更深层次的问题。

3

如果“建立与分析”或打开XCode中的“运行静态分析仪”的偏好,你锵的静态分析。

如果你没有从事C++开发,从gcc切换到Clang似乎没有多大的不利之处。您只需要这样做就可以获得Clang静态分析的好处。

+0

你确定你使用GCC 4.2下的“构建和分析”得到更好的错误消息,我在这里没有看到。对于iPhone,您需要使用GCC? – fuzzygoat 2009-09-25 19:37:58

+0

你是对的,你仍然得到gcc的钝角错误信息。我相应地改变了我的答案。当我发誓的时候,我看到一个官方文档说没有用于iPhone的Clang-LLVM,我找不到它,所以试试看。我为我的Mac代码切换到CClang-LLVM。 – 2009-09-25 21:21:35

3

您可以使用静态分析器,而无需使用实际的Clang编译器。一般来说,你不会使用分析器作为你的默认构建选项,因为它会减缓构建时间。

但是,即使不考虑静态分析,Clang编译器也是一个很好的选择。正如您指出的那样,它有更好的错误报告,但主要优点是速度非常快,事实上在我测试中它几乎是GCC的两倍。

+0

仅供参考,代码或项目与您设置的编译器无关。如果你发现有些东西不能解决问题,我会认为它只是一个默认返回并重新编译的情况? – fuzzygoat 2009-09-25 21:49:51

+0

@fuzzygoat:这是正确的。你只需选择一个不同的编译器并重建项目。所以你选择哪一个作为默认值并不重要。 – Amok 2009-10-02 23:01:43