22

我有一个库,它开始在 XCode 4.4 下抛出几个链接器警告。警告类似于“ld: warning: instance method 'methodName:' in category from overrides method from class in”

该框架仍然可以正常工作,我认为编写它的公司将在下一个版本中纠正这个问题,但目前这些警告非常烦人。有没有办法在不禁用所有链接器警告的情况下关闭它们?

4

2 回答 2

15

通过在 Xcode 构建设置区域的“其他链接器标志”中添加标志,我提出了两个选项:

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

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

ld 似乎没有办法像编译器那样通过外科手术抑制任何单独的警告,尽管它有几个或一组的特殊标志(这些都没有帮助)。上述两种解决方案都可能不推荐用于生产代码,但在某些情况下,其中一种可能会有所帮助。

于 2013-11-13T20:22:16.403 回答
1

如果存在隐藏该警告的选项,它将位于:

Project Navigator(左侧的文件列表)-> [Project name](带有蓝色图标的那个)-> Build Settings -> Apple LLVM compiler 3.1 - 警告

还:

在 Xcode 中,如何抑制特定源文件中的所有警告?

于 2012-09-04T01:35:53.317 回答