前言:
本文记录了自己在配置 Windows环境下 VSCode C开发环境的遇到的问题和解决方法。
参考:
vscode c语言没有代码提示_clangd提示不生效-CSDN博客
vscode c/c++环境配置(MinGW)+调用第三官方库方法 - 知乎
vscode中配置或添加头文件路径_vscode include路径-CSDN博客
vscode"检测到 #include 错误,请更新 includepath。"的问题解决办法_vscode_OneBlackCat-GitCode 开源社区
VSCode 配置 C++:VSCode + Clang + Clangd + LLDB + CMake + Git_vscode clang-CSDN博客
正文:
1. 环境描述
我的开发环境:在 Windows10环境下安装了 VSCode 编辑器,然后在Windows环境下VSCode中安装扩展插件,进行C语言开发。
2. 遇到的问题1: 同时安装了扩展插件 "C/C++ Extension" 和 "Clangd Extension"后,两个插件冲突。
我按照有些博文的操作步骤在 Windows VSCode 中安装了扩展插件"C/C++ Extension" 和 "Clangd Extension",安装这两个扩展插件之后VSCode弹出提示说:
"You have both the Microsoft C++ (cpptools) extension and clangd extension enabled. The Microsoft IntelliSense features conflict with clangd's code completion, diagnostics etc."
提示的意思是说,vscode 的 c/c++插件的代码自动高亮(intelliSence)功能和clangd插件的代码自动补全功能冲突,询问用户是否关闭掉 vscode c/c++ 插件的IntelliSence 功能。
这里是一个坑,如果你直接点击了"Disable IntelliSence" 关闭了vscode c/c++插件的 IntelliSence 功能,在之后开发C/C++ 源码的时候就会发现 VSCode 不能自动进行代码补全和C函数符号跳转了,关闭 vscode c/c++插件的 IntelliSence 后,vscode 有时间会提示如下错误信息:
IntelliSense-related commands cannot be executed when `C_Cpp.intelliSenseEngine` is set to `disabled`.
"Disable IntelliSence" 后VSCode中源码不能自动跳转的原因,在参考链接里的两个博客里也提到了,遇到这个个问题的人不止我一个。如果你已经不小心点击了"Disable IntelliSence" 禁用了了vscode c/c++插件的补全功能,怎么在此打开IntelliSence那?可以参考如下链接中博客的步骤进行操作。
3. 遇到问题2: 将头文件目录加入到vscode搜索路径
遇到的第二个问题是如何将包含头文件的目录假如到VSCode的自动搜索路径中,让VSCode c/c++ 插件可以找到c语言的函数声明和结构体定义,实现在VSCode中可以自动跳转到函数定义的地方。
解决方法: 在VSCode窗口中按下 "Ctrl + Shit + P"组合键,或者按下 "F1" 键,在出现的收缩框里搜索 "C/C++:Edit Configuration(JSON)"
编辑 c_cpp_properties.json 文件,将包含头文件的目录路径加到"includePath:"这里
4.遇到问题3: VSCode 文件目录下面没有自动生成 .vscode/c_cpp_properties.json 文件
该问题的原因和问题1的原因一样,都是vscode c/c++ extension 的 IntelliSence 被关闭。如果vscode c/c++ extension 的 IntelliSence 功能启用,在vscode打开C/C++源码目录时,vscode就会自动在C/C++源码目录下创建 .vscode/c_cpp_properties.json 文件。