如何通过 .xcconfig 禁用特定的 clang 诊断?
Posted
技术标签:
【中文标题】如何通过 .xcconfig 禁用特定的 clang 诊断?【英文标题】:How do you disable specific clang diagnostics via an .xcconfig? 【发布时间】:2013-07-11 23:42:15 【问题描述】:好的,所以说你在编译时遇到了一个错误,例如..
保留的块属性不复制块 - 改用复制属性
因为……
-Wobjc-noncopy-retain-block-property
您可以解决问题,或者可能添加一个标志,例如
-Wno-objc-noncopy-retain-block-property
但是让我们进一步假设您喜欢使用“配置”(.xcconfig
) 文件,并且您想,“好吧,因为我可以使用...
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = NO
也许我会试试……”
CLANG_WARN_OBJC_NONCOPY_RETAIN_BLOCK_PROPERTY = NO
只是发现这不起作用。
所以问题保留,嗯……什么有效?
【问题讨论】:
抱歉,错字...是的,我试过了。 对..应该是! 注意:这些 xcode 构建设置(全部大写)通常是实际构建设置的别名。 【参考方案1】:Xcode 允许您使用 ⌘-C 从 Build Settings 窗格复制条目;粘贴时的结果是与在 .xcconfig 文件中使用的设置相对应的文本。
当我在“其他警告标志”行中输入 -Wno-objc-noncopy-retain-block-property
并将其复制粘贴到新的 .xcconfig 文件中时,我得到了这样的结果:
//:configuration = Debug
WARNING_CFLAGS = -Wno-objc-noncopy-retain-block-property
//:configuration = Release
WARNING_CFLAGS = -Wno-objc-noncopy-retain-block-property
这似乎确实抑制了关于 retain
Block 属性的警告。
【讨论】:
+1 - 你也可以从构建设置视图中拖放 我认为您所说的可能是“尽善尽美”.. 我只想补充一下 - 因为WARNING_CFLAGS
可能会设置在几个“地方”......你可以组合它们(并指定特定的 SDK 等),例如...WARNING_CFLAGS[sdk=macosx*] = $(WARNING_CFLAGS) -Wno-conversion -Wno-objc-noncopy-retain-block-property
...以上是关于如何通过 .xcconfig 禁用特定的 clang 诊断?的主要内容,如果未能解决你的问题,请参考以下文章