当前位置: 首页 > 知识库问答 >
问题:

Clang C抑制每个文件的-Wno-已弃用-声明

越英韶
2023-03-14

在Xcode中,在项目级别,我有以下设置:Xcode设置禁止不推荐使用的函数警告

这将-Wno-deprecated-declarations添加到编译中,我可以从报告导航器中验证这一点。同样,当我尝试使用一个不推荐使用的函数时,也不会出现警告。

我想在单个文件中禁止显示此警告,因此我使用#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]

编译器可以使用这个警告标志,而我却不能在我的pragmas中使用,这怎么可能呢?

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

共有1个答案

吕英才
2023-03-14

尝试:

#pragma clang diagnostic ignored "-Wdeprecated-declarations"

而不是:

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

我刚刚遇到了一个类似的问题“-Wno-符号-比较”,这是通过使用“-Wsign-比较”(删除“no-”部分)来解决的。

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

 类似资料:
  • 问题内容: 当我编译时,javac输出: 我希望取消这个警告。尝试-Xlint:none似乎无济于事。 问题答案: 根据我在文档中所知道的,您无法在命令行上执行此操作。 根据文档,-Xlint:none仅禁用“ Java语言规范未强制执行”的警告。似乎警告您使用不推荐使用的API是由语言规范管理的。 最好的选择是修复不建议使用的API的使用。但是,一种选择是将注释添加到使用不推荐使用的API的类或

  • 我看到了许多在API上使用弃用注释的示例,以便将它们标记为“需要尽快更换”。 然而,在几乎所有这些情况下,代码开发人员不仅继续使用弃用的API,而且还抑制了弃用警告。 API开发人员的最佳意图似乎最终会创建更多与已实现的业务逻辑无关的代码——如果API已弃用但不断使用并抑制相关警告,则看起来充其量是代码的退化,并且在最坏的情况下替换弃用的库时是潜在的应用程序断点IMHO。 这个问题有没有切实可行的

  • 更新 我在这里找到了一个使用的高通滤波器示例。在我的代码中这样实现它。 在我实际测试低声音是否被滤波器静音之前,我遇到了一个问题。使用几秒钟后将音频完全静音。我尝试了0,1500等。几秒钟后,它会变得安静。 原始帖子 我使用下面的约束来抑制噪音。 但我也想静音一些更高的频率。即使我在某个表面上慢慢移动手机,麦克风也会捕捉到噪音并将其发送给其他同伴。它甚至会捕捉到我的呼吸声,并在我将其放在支票附近时

  • 问题内容: 我们正在Java 1.6.0_13下运行一个Java应用程序。崩溃时,它将创建普通的hs_err_pid文件。即使应用程序崩溃,我也不想创建此文件。java命令行上有没有办法抑制这种情况?我熟悉- XX:ErrorFile选项。如果我将其设置为空字符串,将抑制它吗? 问题答案: 如果您使用的是Unix / Linux系统,请尝试设置为(或者,如果您使用的是Windows,请尝试)。

  • 我是java新手,我在VSCODE上编码。我创建2.java文件,如下图所示: 这些是每个文件: Main.java:

  • 问题内容: 今天,我决定将我的android应用程序从Java转换为Kotlin!:)但是,当我输入以下内容时,我感到非常惊讶: 然后Android Studio告诉我:“’getActionView(MenuItem!):View!’ 已弃用。Java中已弃用“ 因此,在问您解决方案之前,我先问谷歌解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()”。 所以我像这样