Clang C++ 抑制每个文件的 -Wno-deprecated-声明

2024-04-09

在 Xcode 中,在项目级别我有以下设置;Xcode 设置以抑制不推荐使用的函数警告 https://i.stack.imgur.com/4eNeY.png

这会将 -Wno-deprecated-declarations 添加到编译中,我可以从 Report Navigator 中进行验证。此外,当我尝试使用已弃用的函数时,也不会发出警告。

我想在单个文件中抑制此警告,因此我使用了#pragma,如下所示;

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wno-deprecated-declarations"

deprecated_function_call();

#pragma clang diagnostic pop

这段代码给出了以下编译错误; 错误:未知警告组“-Wno-deprecated-declarations”,已忽略 [-Werror,-Wunknown-pragmas]

pragma clang 诊断忽略了“-Wno-deprecated-declarations”

编译器怎么可能使用这个警告标志而我却不能在我的编译指示中使用这个警告标志。

我的 clang 版本; Apple LLVM 版本 8.0.0 (clang-800.0.36.1)


Try:

#pragma clang diagnostic ignored "-Wdeprecated-declarations"

代替:

#pragma clang diagnostic ignored "-Wno-deprecated-declarations"

我刚刚遇到了与“-Wno-sign-compare”类似的问题,该问题通过使用“-Wsign-compare”(删除了“no-”部分)来解决。

基于这种行为,我希望在您的情况下,“已弃用声明”是警告组的实际名称,并且在用作编译器选项时添加“no-”前缀以指示该组中的警告应该是被忽略。该编译指示已经包含“ignored”关键字,这可能解释了为什么编译指示中不使用相同的语法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Clang C++ 抑制每个文件的 -Wno-deprecated-声明 的相关文章

随机推荐