我在我的iOS项目中有一些文件出现了一些警告,我想要忽略这些警告。我不想禁用整个项目的警告(我知道如何做到这一点),只想忽略一些特定的文件。那么,有没有一种方法可以完全忽略来自特定文件的所有警告?
我正在使用Xcode 4.2上的LLVM 3.0和Clang。
我在我的iOS项目中有一些文件出现了一些警告,我想要忽略这些警告。我不想禁用整个项目的警告(我知道如何做到这一点),只想忽略一些特定的文件。那么,有没有一种方法可以完全忽略来自特定文件的所有警告?
我正在使用Xcode 4.2上的LLVM 3.0和Clang。
我继承了一个包含大量320代码的项目,该代码库对我抛出了多个警告和静态分析错误,但由于我将很快从项目中删除该代码,所以我对修复这些问题没有兴趣。
你可以通过包含以下编译器标志来禁用特定文件的静态分析警告:
-Xanalyzer -analyzer-disable-all-checks
你可以与-w结合使用,以便禁用该文件的警告。这使我能够在推进新开发时不被那个代码库生成的30多个警告所困扰。如果您只使用clang,则应针对您维护的源文件使用pragma语法(假设通过适当修改程序无法删除警告)。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmultichar"
char b = 'df'; // no warning.
#pragma clang diagnostic pop
如果这些程序是您无法更改且不维护的,则应指定要为该文件禁用的警告,而不是禁用全部警告。 要禁用全部警告,可以添加每个文件参数 -w 。源代码会发生变化,并且某些警告根据不同的构建设置适用或不适用。 Clang的消息可以告诉您哪个标志符等于生成的警告。
要使用Xcode更改文件的构建标志:
- 选择目标
- 选择构建阶段
- 在“编译源”阶段中找到要修改参数的文件
- 双击其“编译器标志”单元格进行编辑
在 Justin 的回答帮助下,以下是您需要执行的步骤:
在我的情况下,它是 conversion
使用筛选器查找编译源中文件名的名称,输入 -Wno-[error name]
,例如:-Wno-conversion