抑制实例方法重写链接器警告框架xcode

抑制实例方法重写链接器警告框架xcode,xcode,frameworks,linker,warnings,Xcode,Frameworks,Linker,Warnings,我有一个库,它开始在XCode 4.4下抛出几个链接器警告。警告的内容是“ld:warning:category from中的实例方法'methodName:'重写中类的方法” 该框架仍然可以正常工作,我认为编写该框架的公司将在下一版本中纠正这一点,但目前这些警告非常烦人。有没有办法在不禁用所有链接器警告的情况下关闭它们?如果存在隐藏该警告的选项,它将位于: 项目导航器(左侧的文件列表)->[项目名称](带有蓝色图标的项目)->构建设置->苹果LLVM编译器3.1-警告 此外: 通过在Xcode

我有一个库,它开始在XCode 4.4下抛出几个链接器警告。警告的内容是“ld:warning:category from中的实例方法'methodName:'重写中类的方法”


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

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

项目导航器(左侧的文件列表)->[项目名称](带有蓝色图标的项目)->构建设置->苹果LLVM编译器3.1-警告

此外:


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

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

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


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

我认为这意味着制作库的人员不正确地对某些内容进行了子类化。似乎没有破坏任何东西,但链接器对此有点抱怨,这很烦人,因为它是一个封闭的源代码,所以我无法修复它。您是否在类中创建/命名了一个方法,与另一个类中的另一个方法相同?它们不是我的类。它在一个预建的图书馆里。谢谢你。编译器部分中没有特定于库的警告或我看到的特定警告。我可以关闭所有警告,但这正是我试图避免的。另一篇引用的文章也针对将要编译的文件,但是库和头文件没有显示在那里,因此没有办法专门为它们设置标志。我不得不假设没有办法禁用xcode中的警告,因为它来自库。这是一个错误的建议。我相信在构建设置UI中有很多没有复选框的叮当声警告。通常,在文件上设置特定的
-W
选项将在编译期间解决此问题。在文件上设置
-fdiagnostics show选项
选项,clang将告诉您要使用哪个
-W
。在这种特殊情况下,这是行不通的,因为OP的问题是关于链接器而不是编译器的。另一个解决方案,同样是针对编译器而不是链接器的,是诊断性杂注:如果您在新的xCode 7中遇到问题,则会给出整个“this function overrides member,not declare override”speil;您可以将-Wno unconsistent missing override标志添加到上述同一项目生成设置中的“其他警告标志”