2

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

非常感谢

加里

4

3 回答 3

3

如果您在 XCode 中“构建和分析”或打开“运行静态分析器”首选项,您将获得 Clang 的静态分析。

如果您不进行 C++ 开发,那么从 gcc 切换到 Clang 似乎没有太大的缺点。您只是不需要这样做即可获得 Clang 静态分析的好处。

于 2009-09-25T18:47:55.270 回答
3

您可以使用静态分析器而不使用实际的 Clang 编译器。通常,您不会将分析器用作默认构建选项,因为它会大大减慢构建时间。

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

于 2009-09-25T21:07:12.027 回答
3

使用 CLANG 有几个选项:

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

  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”以查看是否存在更深层次的问题。

于 2009-10-02T22:51:45.343 回答