stdio.h出现红线的解决方法
安装了Clangd插件后,一般系统会提示关闭一些冲突项,确定就行。
但这时一般会出现一个问题,stdio.h头文件,printf函数等都会出现红色波浪线,虽然可以编译运行程序,标记但是看起来很多错误。

网上有很多方法,有些需要结合CMake才能做好,对于新手不太友好,我自己搞了好就没处理好。
这里有种等效的方法可供大家参考:
方法一:设置.vscode目录中的settings.json文件
在主目录下的.vscode目录下建立一个新文件settings.json(如果已经有了,则在里面添加)。
这个文件里面的内容是:
{ //原来有内容则大括号不用。
"clangd.arguments": [
"--query-driver=D:/computer/mingw64/bin/g*", //这句对去波浪线无效
],
"clangd.fallbackFlags": [
"-ID:/computer/mingw64/include", //这句对去stdio.h波浪线无效,如果使用到这里面的头文件,应该会起作用
"-ID:\\computer\\mingw64\\x86_64-w64-mingw32\\include", //这句有效
],
}
这里面实际上clangd.arguments的设置无法解决问题红波浪线问题,也可能可以解决其他问题。
主要是clangd.fallbakFlags这一项。
加上两个include目录,首先是参数-I(-大写的i)无空格直接加路径,我的mingw编译器在D:\computer\mingw64,(以下换成自己的编译器目录) 所以参数和路径是 -ID:/computer/mingw64/include 和 -ID:\\computer\\mingw64\\x86_64-w64-mingw32\\include
这里的路径的目录分割可以用linux下的斜杆 /,也可以用windows下的反斜杆 \,但反斜杆必须两个连用 \\。这里只是举例,加深初学者对vscode设置中目录分隔符的了解,可以统一用/ 或\\。
保存settings.json, 关闭,重新开vscode,波浪线不见了,变成下横线:
方法2:直接设置clangd的 fallbackFlags 字段
方法1 中每一个新项目都要设置,比较麻烦,所以可在全局变量上直接设置。
左侧点击拓展,点 clangd 右下角小齿轮,点击settings,鼠标下滚,找到fallback Flags字段:
add items 点击,
这里加两次,分别加入前面.vscode目录下setting.json的相应路径:
在这里,识别是比较智能化的,可以使用 /、\、\\、三种形式分割目录,所以可以直接复制windows相应的目录,前面的需加-I参数。
添加完这两行后,保存重启vscode,方法1中.vsconde目录下settings.json的相应的 fallbackFlags项去掉也不会出现波浪线。
两种方法,本质都是修改clangd的参数,且都需要重启vscode才能看到效果。