Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 用叮当声开始是明智的吗?_Xcode_Clang_Clang Static Analyzer - Fatal编程技术网

Xcode 用叮当声开始是明智的吗?

Xcode 用叮当声开始是明智的吗?,xcode,clang,clang-static-analyzer,Xcode,Clang,Clang Static Analyzer,我刚开始学习xcode并学习Objective-C&Cocoa,将xcode 3.2中的编译器替换为Clang是否有助于增强错误检查和静态分析器。我只是好奇,这些额外的设置是否会有帮助,或者我的学习是否会更好地坚持默认设置 非常感谢 gary如果您在XCode中“构建并分析”或打开“运行静态分析器”首选项,您将获得Clang的静态分析 如果你不做C++开发,从GCC切换到Clang似乎没有太大的下落。您不需要这样做就可以从Clang的静态分析中获益。您可以使用静态分析器,而无需使用实际的Clan

我刚开始学习xcode并学习Objective-C&Cocoa,将xcode 3.2中的编译器替换为Clang是否有助于增强错误检查和静态分析器。我只是好奇,这些额外的设置是否会有帮助,或者我的学习是否会更好地坚持默认设置

非常感谢

gary

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


如果你不做C++开发,从GCC切换到Clang似乎没有太大的下落。您不需要这样做就可以从Clang的静态分析中获益。

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


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

使用CLANG有几个选项:

  • 运行build和analyze,查看clang 结果

  • 在项目设置中为 配置,您可以检查 “运行静态分析器”框和叮当声 将在每次编译时运行

  • 您还可以更改编译器 从GCC4.x到CLANG/LLVM。那个 显示更多错误和叮当声 警告(一个例子是
    NSLog(@“A值为%@:%@”,value)
    会提醒你不要进去 足够的参数)

  • 我推荐选项2——如果您在每个构建中运行静态分析器,它不会花费太多时间,您会立即发现您是否在做一些奇怪的事情,而不是稍后修复一堆错误。它给你的清晰信息实际上提供了很多教育价值,因此,如果你只是在学习,打开它更有意义

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


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

    这是什么“叮当声”?你能提供一个链接吗,我很感兴趣…他的意思是“叮当”:我被棘轮和叮当弄混了:)我的意思是叮当,上面的问题被编辑成正确的措辞。你确定在GCC 4.2下使用“构建和分析”会得到更好的错误消息吗,我在这里看不到。同样对于iPhone,您需要使用GCC?没错,您仍然会收到GCC的迟钝错误消息。我相应地改变了答案。虽然我发誓我看到一份官方文件说iPhone没有叮当作响的LLVM,但我找不到它,所以试试看。我的Mac代码已经切换到CClang LLVM。仅供参考,对于您设置的编译器,代码或项目不会有任何差异。如果你发现有些事情没有解决,我会假设这只是一个将其默认返回并重新编译的例子?@fuzzygoat:没错。您只需选择不同的编译器并重新生成项目。因此,选择哪一个作为默认值并不重要。