【问题标题】:In Xcode, how to suppress all warnings in specific source files?在 Xcode 中,如何抑制特定源文件中的所有警告?
【发布时间】:2011-10-18 19:26:56
【问题描述】:

在我的应用程序中,我使用了触发一些警告的第 3 方代码。我审查了它们,可以放心地忽略它们。

现在我想以某种方式“标记”一个文件,因此 Xcode 不会对该文件中的代码显示任何警告。

我该怎么做?

【问题讨论】:

    标签: xcode warnings


    【解决方案1】:

    选择您的目标并显示构建阶段。然后在搜索框中输入文件的名称,您应该会看到它在 Compile Sources 阶段列出。双击该文件的 Compiler Flags 列并输入 -w 以关闭该文件的所有警告。

    【讨论】:

    • 嗯,我希望-w 关闭所有警告,但也许新编译器没有注意这一点。在这种情况下,请关闭个别警告。在 Build Settings 中找到有问题的警告,并在 Utilities 视图中显示 Quick Help。您应该会看到一个描述,其语法为 -Wname-of-warning。在名称前加上“no-”并在编译器标志中指定。示例:关闭-Wunused-parameter 指定-Wno-unused-parameter
    • 事实证明,这一切都依赖于编译器。我的意思是,在一个使用 LLVM GCC 编译器 -w 的项目中可以解决问题,而在其他使用普通 GCC 编译器 -Wno-name-of-warning 的项目中是唯一的方法。
    • 感谢您的提示,也为我工作(-w 和 LLVM)。当您包含不想修改的第三方文件时非常方便。
    • @Zammbi 由于代码是自动生成的,请修复它以生成没有警告的代码。如果您不能这样做,请自动修补 Xcode 项目以设置编译器标志。
    • 不适用于使用 Xcode 7.0 和 Apple LLVM 7.0 的 Swift 2
    【解决方案2】:

    在左侧导航器中选择项目,然后选择目标进入构建阶段并将 -w 放入目标文件的构建阶段。它将隐藏所有编译器警告

    【讨论】:

    • 不适用于使用 Xcode 7.0 和 Apple LLVM 7.0 的 Swift 2
    • 将 clang 编译器标志传递给外部编译器不起作用。平息惊喜...谷歌 swift 编译器的警告标志并添加它。
    【解决方案3】:

    这适用于 Xcode 10.2+ 和 Swift 5

    手动修复:

    从 Xcode > Project > Targets > Compile Sources > 将-w -Xanalyzer -analyzer-disable-all-checks 添加到有问题的文件中 > 双击要关闭警告的文件。

    Cocoapods 修复:

    如果您试图抑制来自有问题的 pod 的警告,您可以使用 podfile 中的 inhibit_warnings 标志自动抑制来自依赖项的所有警告:

    pod 'Kingfisher', '~> 4.6', :inhibit_warnings => true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      相关资源
      最近更新 更多