VSCode 的 C/C++ 语言环境搭建

学习C/C++希望能有一个通用且足够方便的编辑器,最后选择了VSCode来作为C的编辑器,最后记录一下过程以及一些遇到的问题

前言

本教程在win10环境下使用

基础软件下载

首先需要电脑里下载好下面的软件

这里C/C++编译器有很多选择,比如Clang等,这里我选择了MinGW-w64。

在下载页面建议64位操作系统选择”x86_64-posix-seh”,下载后得到 “x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z” 文件,解压后得到 mingw64文件夹,copy该文件夹到安装目录(D://path//to//your//mingw)即可,然后然后配置环境变量,添加 path = D://path//to//your//mingw//bin

VSCode 设置

首先下载好C/C++扩展,这里可以直接下载C/C++ Extension Pack扩展 ,此扩展包包括一组用于VSCode代码中C++开发的流行扩展:

  • C/C++
  • C/C++ Themes
  • CMake
  • CMake Tools

然后主要配置三个文件:

c_cpp_properties.json
tasks.josn
launch.json

配置 c_cpp_properties.json

这一步主要是用于使VSCode知道编译器的路径,以方便调用
首先创建一个新项目,即文件夹。
Img
然后打开全局命令面板(快捷键Ctrl + Shift + P) 按下 > 搜索找到C/C++: Edit Configurations (C/C++: 编辑配置)
Img
然后跳转到配置界面,这里是选用UI配置,主要配置三个参数
Img
需要注意的是包含路径参数(includePath)需要在cmd中输入gcc -v -E -x c++ -在指令结束最后可以获得一系列路径,需要把路径加入到这个参数列表中
Img
可选择配置C标准和C++标准
配置完成后可以发现.vscode文件夹里面有c_cpp_properties.json

配置 tasks.josn

这个文件是用于编译文件的

首先新建一个后缀为.cpp或者.c的空文件
然后打开全局命令面板 搜索tasks 选择Tasks:Configure Default Build Task(任务:配置默认生成任务)
。选择 C/C++: g++.exe build active file。若是 C,请选择 C/C++: gcc.exe build active file
完成后会在 .vscode 文件夹下创建 task.json 文件并打开
参数基本无需配置

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: gcc.exe 生成活动文件",
			"command": "D:\\path\\to\\your\\mingw\\bin\\gcc.exe",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\exe\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: D:\\path\\to\\your\\mingw\\bin\\gcc.exe"
		}
	]
}

配置 launch.json

这个文件是配置调试设置的,方便调试

最开始按照网上的方式
Img

启动调试后选择GDB/LLDB调试器后创建launch.json 里面已包含了无需调整的参数,但是很可惜,我只生成了空的launch.json
最后借鉴了网上的json参数实现的,需要修改两个参数cwd和miDebuggerPath

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",//配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",//配置类型,这里只能为cppdbg
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\exe\\${fileBasenameNoExtension}.exe",//将要进行调试的程序的路径
            "args": [],//程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,//设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceFolder}", // //调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
            "environment": [],
            "externalConsole": true,//调试时是否显示控制台窗口,一般设置为true显示控制台
            "MIMode": "gdb",
            "miDebuggerPath": "D://path/to/your/mingw/bin/gdb.exe", //miDebugger的路径,注意这里要与MinGW的路径对应
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件" 
            //调试会话开始前执行的任务,一般为编译程序,c++为g++,c为gcc
            //任务名字最好与tasks.json的label一致
        }
    ]
}

tips

1.建议大家配置成功后,将.vscode文件夹备份一份,以后需要的时候直接复制即可(放在存代码的文件夹里),不用再花时间进行配置了。

2.因为vscode在执行完程序后会退出,所以可以选择在return 0;增加一行

system(“pause”)