【问题标题】:Is it wise to use Clang to start with? [closed]使用 Clang 开始是否明智? [关闭]
【发布时间】:2010-12-01 12:33:13
【问题描述】:

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

非常感谢

加里

【问题讨论】:

  • 这是什么“叮当声”?能给个链接吗,我很感兴趣...
  • 他的意思是“clang”:clang.llvm.org

标签: xcode clang clang-static-analyzer


【解决方案1】:

有几个使用 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”以查看是否存在任何更深层次的问题。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 您确定在 GCC 4.2 下使用“构建和分析”会收到更好的错误消息吗,我在这里看不到。同样对于 iPhone,您需要使用 GCC 吗?
    • 你是对的,你仍然得到 gcc 的钝的错误信息。我相应地改变了我的答案。虽然我发誓我看到一个官方文档说没有适用于 iPhone 的 Clang-LLVM,但我找不到它,所以试试看。我已经为我的 Mac 代码切换到 CClang-LLVM。
    【解决方案3】:

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

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

    【讨论】:

    • 仅供参考,您设置的编译器在代码或项目中没有区别。如果您发现某些问题无法解决,我会假设它只是默认返回并重新编译的一种情况?
    • @fuzzygoat:没错。您只需选择不同的编译器并重建项目。所以你选择哪一个作为你的默认值并不是很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2011-02-13
    • 2012-03-12
    相关资源
    最近更新 更多