我有一个库,它开始在XCode 4.4下抛出几个链接器警告。警告类似于"ld:警告:实例方法'methodName:'在类别中,从覆盖方法从类"
该框架仍然可以正常工作,我认为编写它的公司将在下一个版本中更正此问题,但目前这些警告非常烦人。有没有办法在不禁用所有链接器警告的情况下关闭它们?
通过在 Xcode 构建设置区域中的"其他链接器标志"中添加标志,我想出了两个选项:
1) 添加-Xlinker -w
将禁止显示所有链接器警告,无论类型如何(这是 ld(1) 的-w
标志)。 显然,这将平息这个特定的警告,但所有其他 ld 警告也是如此。
2) 添加-Xlinker -no_objc_category_merging
将跳过优化步骤,在该步骤中,链接器在链接期间将所有类别方法组合到基类中,然后在运行时发生。 启动时可能慢一点, 但它可能仍然比运行时的方法切换更快, 并且由于 ld(1) 在此步骤中发出警告, 它也会跳过它。
似乎 ld 没有办法像编译器那样通过外科手术来抑制任何单个警告,尽管它对其中几个或其中一组有专门的标志(它们都无济于事)。 对于生产代码,可能不建议使用上述两种解决方案,但在某些情况下,其中一种可能会有所帮助。
如果存在隐藏该警告的选项,则应位于:
项目导航器(左侧文件列表)-> [项目名称](带有蓝色图标的那个) -> 构建设置 -> 苹果LLVM编译器3.1 - 警告
也:
在 Xcode 中,如何抑制特定源文件中的所有警告?