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