我的iOS项目中有一些文件有一些警告,我想忽略这些警告。我不想在整个项目中禁用警告(知道如何做),只是一些特定的文件。那么,有没有办法完全忽略特定文件中的所有警告?
我在Xcode 4.2上使用LLVM 3.0和Clang。
答案 0 :(得分:90)
我继承了一个包含大量320个代码的项目,并且该代码库向我抛出了几个警告和静态分析器错误,我没有兴趣修复,因为我将在不久的将来从项目中删除该代码。
您可以通过包含以下编译器标志来禁用特定文件的静态分析器警告:
-Xanalyzer -analyzer-disable-all-checks
您可以将此与-w结合使用以禁用该文件的警告。这使我能够推进新的开发,而不必被代码库产生的大约30个警告所困扰。
使用上面的说明: 使用Xcode来改变文件的构建标志:
答案 1 :(得分:62)
如果你只是使用clang,那么你应该对你维护的源使用pragma语法(假设不可能通过适当地改变程序来删除警告)。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmultichar"
char b = 'df'; // no warning.
#pragma clang diagnostic pop
如果这些程序无法更改且无法维护,则应指定要对文件禁用的警告,而不是全部。要禁用所有,您可以添加每个文件参数-w
。源更改,并且某些警告(或不应用)适用于不同的构建设置。 clang的消息可以告诉你什么标志等于生成的警告。
使用Xcode更改文件的构建标志:
答案 2 :(得分:20)
在贾斯汀的回答的帮助下,这就是你的做法
就我而言,conversion
使用过滤器在编译源中查找文件的名称,键入-Wno-[error name]
,例如-Wno-conversion
答案 3 :(得分:2)
您可以选择特定目标 - >构建设置,搜索“禁止所有警告”并设置为“是”。这将禁用此目标上的警告。 如果您使用一些代码(如JSONKit和cocoapods),并且您不希望看到编译器如何对警告发出警告,这可能很有用:)