c++ 如何忽略VSCode clangd插件的一些警告?

n8ghc7c1  于 2022-11-27  发布在  Vscode
关注(0)|答案(1)|浏览(1055)

我在VSCode中安装了一个clangd插件来开发C++。
这个插件运行良好,但是它在我们的项目中显示了一些代码错误/警告,因为我们在中使用了一个过时的函数<zstd.h>。
include <zstd.h>
deprecated function
如何在不更改代码的情况下屏蔽此错误?
例如,我可以通过修改.vscode/settings.json忽略VSCode的cpplint插件中的一些警告:
ignore some error on cpplint plugin
我可以对VSCode的clangd插件做类似的事情吗?谢谢~
我尝试使用clang diagnostic,但似乎不起作用。

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-attributes"
#include <zstd.h>
#pragma clang diagnostic pop

clang diagnostic don't work

omhiaaxx

omhiaaxx1#

首先,请注意,错误的原因不是函数被弃用,而是解析错误(“属性列表不能出现在这里”)。与弃用相关的注解只是在悬停中显示的注解,与错误诊断无关。
如果您想要隐藏错误,可以使用https://clangd.llvm.org/config.html#suppress。例如,您可以在项目根目录中建立.clangd档案,其中包含:

Diagnostics:
  Suppress: attributes_not_allowed

(Note,attributes_not_allowed是第一个屏幕截图中错误得诊断代码.)
然而,隐藏诊断可能只是掩盖了一个可能与项目配置相关的潜在问题。更好的方法是修复潜在问题。要做到这一点,请查看项目设置说明,并确保您的项目有一个compile_commands.json,clangd正在查找它;如果这不能解决问题,请随时发布clangd日志以进行进一步诊断。

相关问题