原文地址:VS code + clangd + MinGW + CMAKE配置C/C++开发环境
参考B站up主的视频使用 VS Code + Clangd + CMake 搭建 C/C++开发环境来进行配置。
B站大佬的配置方法很好,但是在Windows下用WSL来进行开发终究还是有点麻烦,而且wsl运行的内存占用,快赶上一些大型IDE了,这样的话配置vscode不就没有必要了吗,为什么不直接使用Clion或者VS呢。
所以找到这些软件尝试不用WSL在windows下配置C/C++开发环境,但最后发现虽然LLVM有windows版本,但是要用到Visual Studio,于是放弃clang,直接用MinGW来配置。
安装软件用到的软件/插件(直接点击链接下载安装即可):
软件:
- Visual Studio Code
- CMake
- MinGW
- Ninja
- clangd
插件:
- CMake Tools
- clangd
- CodeLLDB
某些官网或者github上不去可以直接在蓝奏云下载:
打包下载地址
密码:9uaq
安装vscode一路next
安装cmake下载.msi格式的安装包来安装。
注意安装时勾选将cmake添加到path。
安装MinGWwindows下直接下载MingW-W64-builds就好。
安装时只要注意Architecture,64位选x86_64,32位选i386。
安装完成后将安装目录下的bin文件夹添加到系统环境变量中。
安装Ninja下载之后将文件夹解压到一个固定位置之后,将文件夹添加到环境变量即可,由于是cmake在用,也可以直接把ninja.exe直接放到cmake安装目录下的bin文件夹下,就不用单独添加环境变量了。
安装clangd直接解压后把文件夹放在固定位置后将bin文件夹添加到环境变量。
安装vscode插件vscode中的插件,CMake Tools和clangd可以直接在vscode中搜索安装,没有问题,只是clangd与C/C++插件不兼容,要注意不要安装C/C++插件。
对于CodeLLDB,在vscode中安装大概率会下载失败,可以直接到github页面去下载.vsix文件手动安装.
安装方法:打开vscode,按F1,输入vsix,出现从VSIX安装,点击后选择下载的.vsix文件即可安装成功。
配置C/C++项目 项目结构新建一个文件夹作为项目目录,在目录下新建几个文件:
目录结构如下:
├─src │ ├─Template.c │ └─Template.h ├─CMakeLists.txt └─main.c
在src目录中是自定义的头文件
CMake打开vscode设置,在cmake设置中找到Generator,将其指定为Ninja:
CMakeLists.txt文件内容如下
cmake_minimum_required(VERSION 3.20) project(Template C) set(CMAKE_C_STANDARD 23) add_executable(${CMAKE_PROJECT_NAME} main.c src/Template.c ) target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE src )
cmake_minimum_required()定义CMake最低版本为3.20
project()定义项目名称和项目类型
set(CMAKE_C_STANDARD 23)规定项目使用的C语言标准为C23
再下面两部分规定了项目包含的源文件以及include文件夹。
保存文件,会自动生成一个build文件夹。
launch.json这时候按F5来调试程序,会自动在.vscode目录下生成一个launch.json文件。
将里面的内容改成如下所示:
{ "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "launch", "name": "Debug", "program": "${command:cmake.launchTargetPath}", "args": [], "cwd": "${workspaceFolder}" } ] }clangd配置
打开vscode设置,在扩展中找到clangd,添加如下选项:
- 由于clangd需要读取cmake生成的compile-commands.json文件,所以需要指定其路径
- 设置clangd代码提示显示参数类型
- 设置从不导入头文件
编写简单的测试程序:
- main.c
#include "Template.h" #includeint main() { template x; x.a = 1; x.b = 2; printf("%d %d", x.a, x.b); }
- Template.c
#include "Template.h"
- Template.h
typedef struct { int a; int b; } template;
clangd的代码提示正常,按住ctrl点击头文件可以跳转。
添加断点调试也没有问题。
设置运行及调试快捷键为了方便运行,可以添加自定义快捷键,实现像code runner插件那样的运行体验。
运行按F1,输入cmake,找到运行但不调试,点击右边的齿轮按钮来自定义快捷键。
点击左边的编辑后输入要绑定的快捷键之后回车,这里就绑定为ctrl+alt+n,跟code runner一样,为了不发生冲突,找到code runner的运行快捷键,右键更改when表达式,填入如下:
editorLangId != 'c' && editorLangId != 'cpp'
这样,code runner的快捷键就不会在编写C/C++时生效了。
调试默认的调试快捷键为F5,很方便,但为了符合习惯,将其改为ctrl+alt+m,方法同上,这一快捷键与code runner中的停止运行冲突,感觉这个快捷键没什么用,直接删了。
到此配置完成,源代码编辑完成后可以ctrl+alt+n运行,ctrl+allt+m调试,不影响code runner运行python之类的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)