忽略使用LLVM / Clang的特定文件的所有警告忽略使用LLVM / Clang的特定文件的所有

2019-05-13 09:19发布

有在我的iOS项目的一些文件有一些警告,我想忽略这些警告。 我不想禁用整个项目的警告(知道怎么做),只是一些具体的文件。 那么,有没有办法完全忽略从一个特定的文件中的所有警告?

我使用的Xcode 4.2 LLVM 3.0锵。

Answer 1:

如果你只是使用铛,那么你应该使用你维护(假设它是不可能通过适当地改变程序来删除警告)源编译语法。

这里是语法:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmultichar"

char b = 'df'; // no warning.

#pragma clang diagnostic pop

如果这些程序不能更改,不维护,您应该指定警告(S)来禁用该文件,而不是全部。 禁用所有,可为每个文件参数添加-w 。 来源发生变化,一些警告做(或没有)与不同的构建设置应用。 铛的消息可以告诉你等于在生成的警告标志是什么。

要使用Xcode中改变文件的编译标志:

  • 选择目标
  • 选择构建阶段
  • 找到要修改的参数文件中的“编译源”阶段
  • 双击它的“编译器标志”单元编辑


Answer 2:

我继承了包含了大量的320代码的项目,而代码库扔几个警告,静态分析错误在我,我已经在固定不感兴趣,因为我会在不久的将来,该项目移除该代码。

您可以通过包括以下编译器标志一个特定的文件禁用静态分析警告:

-Xanalyzer -analyzer-disable-all-checks

你可以用-w结合本禁用该文件警告也是如此。 这使我能够同时不必与代码库中产生30级左右的警告被缠着推进有了新的发展。

使用说明上面:要使用Xcode中改变文件的编译标志:

  1. 选择目标
  2. 选择构建阶段
  3. 找到要修改的参数文件中的“编译源”阶段
  4. 双击它的“编译器标志”单元编辑
  5. 加上“-w -Xanalyzer -analyzer - 禁用 - 全部检查”,以抑制警告和警告铿锵


Answer 3:

与贾斯汀的答案的帮助,这是你怎么做

1.找到报警的名称。

在我的情况下,其conversion

2.添加每个文件的编译器标志构建阶段

使用过滤器来查找在编译源文件,类型的名称-Wno-[error name]-Wno-conversion



Answer 4:

您可以选择特定的目标 - >构建设置,搜索禁止所有警告,并设置为YES。 这将在此目标上禁用警告。 如果你使用一些类似的代码JSONKit用的CocoaPods这可能是有用的,你不希望看到编译器如何呼喊关于警告:)



文章来源: Ignore all warnings in a specific file using LLVM/Clang