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

我的iOS项目中有一些文件有一些警告,我想忽略这些警告。 我不想在整个项目中禁用警告(知道如何做),只是一些特定的文件。 那么,有没有办法彻底忽略来自特定文件的所有警告?

我在Xcode 4.2上使用LLVM 3.0和Clang。

如果你只是使用了clang,那么你应该为你维护的源代码使用pragma语法(假设不可能通过适当地改变程序来删除这个警告)。

这里是语法:

#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wmultichar" char b = 'df'; // no warning. #pragma clang diagnostic pop 

如果这些程序是不能更改和不维护的,则应该为该文件指定要禁用的警告,而不是全部。 要禁用所有,您可以添加每个文件参数-w 。 来源改变,并且一些警告(或不)适用于不同的构build设置。 铛的消息可以告诉你什么标志相当于生成的警告。

使用Xcode来更改文件的构build标志:

  • select目标
  • select构build阶段
  • find该文件以修改“编译源”阶段中的参数
  • 双击其“编译器标志”单元格进行编辑

我inheritance了一个包含了大量320个代码的项目,并且这个代码库向我抛出了几个警告和静态分析器错误,我不想修复它们,因为我将在不久的将来从项目中移除这些代码。

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

 -Xanalyzer -analyzer-disable-all-checks 

您可以将其与-w结合使用以禁用该文件的警告。 这使我能够推进新的发展,而不必被这个代码库所产生的30多个警告所困扰。

使用上面的指令:使用Xcode来更改文件的构build标志:

  1. select目标
  2. select构build阶段
  3. find该文件以修改“编译源”阶段中的参数
  4. 双击其“编译器标志”单元格进行编辑
  5. 添加“-w -Xanalyzer -analyzer-disable-all-checking”来抑制警告和叮当声警告

在贾斯汀的回答的帮助下,你就是这样做的

1.find警告的名称。

在我的情况下,它的conversion

在这里输入图像说明

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

使用filter在编译源中find文件的名称,input-Wno-[error name]例如-Wno-conversion

在这里输入图像说明

您可以select特定的目标 – >生成设置,search禁止所有警告,并设置为是。 这将禁用此目标上的警告。 如果你用cocoapods使用一些像JSONKit这样的代码,而且你不想看到编译器如何哭泣警告:)