我有一个库,开始在XCode 4.4下引发一些链接器警告。警告遵循“ld:警告:类别中实例方法'methodName:”的类别,覆盖“

该框架仍然可以正常工作,我认为编写该框架的公司将在下一个版本中对此进行更正,但是暂时这些警告非常令人讨厌。有什么办法可以在不禁用所有链接器警告的情况下将其关闭?

最佳答案

通过在Xcode构 build 置区域的“其他链接器标志”中添加标志,我想到了两种选择:

1)添加-Xlinker -w将抑制所有链接器警告,无论类型如何(这是ld(1)的-w标志)。显然,这将使此特定警告安静下来,但所有其他ld警告也是如此。

2)添加-Xlinker -no_objc_category_merging将跳过优化步骤,该链接器在链接期间将所有类别方法组合到基类中,然后会在运行时发生。可能在启动时会稍微慢一点,但是它可能仍然比运行时的方法困惑要快,并且由于ld(1)在此步骤中发出警告,它也会跳过该警告。

看来ld并没有办法像编译器那样通过外科手术来抑制任何个人警告,尽管它对其中的几个或一组警告有专门的标志(对此毫无帮助)。以上两种解决方案均不建议用于生产代码,但在某些情况下,一种或两种可能会有所帮助。

08-17 04:31
查看更多