在几个项目中,我使用了产生多个编译器警告的 3rd 方代码。我显然不想通过并修改积极更新的 3rd 方项目的代码。
这给我留下了很多不必要的警告,这些警告淹没了我的代码中的警告。
我使用了一些编译器标志来抑制每个文件的特定警告,但这对于具有 10-20 .m 文件的开源代码来说太乏味了。
有没有办法通过 Xcode 组或文件路径发出所有警告?或者有人有更好的建议吗?
(仅供参考:我使用的是 LLVM 1.5 编译器)
关闭每个文件的警告非常简单。所需要的只是一个编译器标志。这是一步一步的过程。
这是参考链接 http://blog.bluelightninglabs.com/2011/12/suppressing-xcode-warnings-on-a-per-file-basis/
以我的经验,XCode 3.x 似乎只显示在最近构建中实际编译的文件的警告,因此如果您构建项目,修改单个文件然后再次构建项目,您只会看到修改文件的警告。我通常发现这弊大于利(特别是因为在 Objective-C 中,调用不存在的选择器只是一个警告!)——幸运的是它在 XCode 4 中得到了修复——但在你的情况下可能有用。
但是,出于各种原因,您可能需要考虑将第三方代码放入框架中。这不会自动抑制警告(尽管它可能更容易抑制它们),但这意味着第三方代码已编译到库中,因此不属于您的正常编译周期。
这当然不是更简单的解决方案,但您可以浏览这些第三方库并修复它们导致警告的错误并提交补丁。然后,警告消失,错误得到修复,每个人都可以享受这两种改进。
(您能够以这种方式压缩多少警告取决于它们是什么:如果库需要支持旧版本的 Mac OS X 或 iOS,而现在已弃用的 API 是唯一办法。)