【问题标题】:How to suppress header file warnings from an Xcode project如何抑制来自 Xcode 项目的头文件警告
【发布时间】:2022-02-18 20:46:08
【问题描述】:

当我在 Xcode 7 beta 4 中构建 UnzipKit 时,我在 MiniZip 的 ioapi.h 文件中收到编译器警告。例如:

.../ioapi.h:22:9: warning: macro name is a reserved identifier [-Wreserved-id-macro]
#define _ZLIBIOAPI64_H

ioapi.c 有很多自己的警告,所以我用-Wno-everything 编译它,如下所示:

但是,没有可用于标头的“编译器标志”设置:

如何在不修改源文件的情况下使警告静音?我宁愿不修改它,因为它是一个外部依赖项。我也不想为整个项目打开它,因为它对我自己的代码是一个有用的警告。

【问题讨论】:

  • 也许您需要将 Build Settings 中的 Enable Modules 设置为 NO?
  • @Leo 这有什么帮助?我想要打开模块。

标签: objective-c xcode


【解决方案1】:

我用这个找到了答案:https://stackoverflow.com/a/7535436/2148757

我想你的代码应该是这样的:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#import "ioapi.h" //Hide a warning in this header because we don't want to change our dependencies
#pragma clang diagnostic pop

编辑: 我不需要在我们的项目中导入头文件,但我还是将它导入到 PrefixHeader.pch 文件中以删除警告。

【讨论】:

  • 但这需要修改源代码,我不想这样做(如问题中所述)。我自己的代码都没有导入 ioapi.h - 它只是其他 MiniZip 文件。此外,此警告似乎在某个时候消失了。我现在在 Xcode 7.3.1 中没有看到它。
  • @Dov 很高兴您的警告消失了,我们知道 Xcode 有时会发生这种情况。我会澄清我的答案,但我不必在我自己的代码中导入它。无论如何,我在 PrefixHeader.pch 中做了,警告消失了。
  • 应该是-Weverything(不是-Wno-everything,如最初发布的那样)。答案已相应编辑。
猜你喜欢
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 1970-01-01
相关资源
最近更新 更多