如何在Xcode中集中抑制编译器警告

时间:2010-08-06 11:59:51

标签: iphone cocoa xcode gcc llvm

在几个项目中,我使用的第三方代码产生了多个编译器警告。我显然不想通过修改积极更新的第三方项目的代码。

这给我留下了很多不必要的警告,淹没了 MY 代码中的警告。

我已经使用了一些编译器标志来抑制每个文件的特定警告,但对于包含10-20个.m文件的开源代码来说,这太麻烦了。

Xcode组或文件路径是否有所有警告?或者有人有更好的建议吗?

(仅供参考:我使用的是LLVM 1.5编译器)

3 个答案:

答案 0 :(得分:2)

根据我的经验,XCode 3.x似乎只显示实际在最新版本中编译的文件的警告,所以如果你构建项目,修改一个文件,然后再次构建项目,你' ll只能看到修改过的文件的警告。我通常认为这样做弊大于利(特别是因为在Objective-C中,它只是一个警告来调用一个不存在的选择器!) - 幸好它已在XCode 4中修复 - 但在你的情况下可能有用。

但是,出于各种原因,您可能需要考虑将第三方代码放入Framework中。这不会自动抑制警告(尽管它可能更容易抑制它们),但这意味着第三方代码被编译到库中,因此不属于正常的编译周期。

答案 1 :(得分:2)

基于每个文件关闭警告非常简单。所需的只是编译器标志。这是一步一步的过程。

  1. 在Xcode中打开Project Navigator
  2. 点击导航器最顶部的项目图标
  3. 在生成的详细信息窗格中,选择您正在使用的目标 与
  4. 选择“构建阶段”
  5. 展开“编译来源”
  6. 在列表中找到您感兴趣的文件
  7. 双击“编译器标志”列旁边的列 你的档案
  8. 在生成的对话框中添加-w
  9. 点击“完成”
  10. 建立现在的警告免费项目
  11. 这是参考链接 http://blog.bluelightninglabs.com/2011/12/suppressing-xcode-warnings-on-a-per-file-basis/

答案 2 :(得分:1)

这当然不是更简单的解决方案,但您可以通过这些第三方库并修复其警告导致的错误并提交补丁。然后,警告消失,错误得到修复,每个人都可以享受这两项改进。

(你可以用这种方式警告多少警告将取决于它们是什么:如果图书馆需要支持旧版本的Mac OS X或iOS,现在已弃用,则可能无法避免弃用API警告API是唯一的方法。)