前言
本文记录了如何在vscode中配置c的开发环境,包括使用了MinGw和cl.exe的两种方式。本文只是作者在自己电脑上尝试结果的记录,可能并不适用于每一台电脑,更多的是为初次尝试使用vscode提供一种可能可行的方式。
如果仅仅想要“运行”c,则只完成步骤2即可。若希望使用调试功能,步骤3可能会比较重要。
步骤
1.下载安装vscode和MinGw;
2.安装vscode中的插件;
3.在vscode中配置文件;
第一步:下载和安装
vscode的安装和MinGw的安装有很多相关教程,遇到问题可以自行搜索解决。
其中:
环境变量配置:
点击环境变量,在系统变量中选择path,点击编辑;
新建一个指向gcc等文件所在的文件夹的环境变量;
打开命令行,测试是否安装成功:gcc -version
第二步:Vscode中的插件
搜索c安装C/C++;
搜索code安装code runner;
设置code runner:在设置中搜索code runner,可以根据自己的具体使用偏好来设置;
其中 run in terminal是在终端中运行,建议开启;
在设置完成后,编写一个简单的c文件,点击右上角三角符号,或右键选择run code运行;
第三步: 配置vscode
编写一个简单的程序,保存为文件名.c;
C++(GDB/LLDB)
按F5启用调试,选择C++(GDB/LLDB);
选择生成和调试活动文件;
会自动生成一个文件夹和两个文件;
需修改: "externalConsole": true,
检查 launch.json中的“preLaunchTask”是否跟tasks文件中的“label”完全相同,可自行修改;
之后正常使用即可;
注意,调试时若没有设置断点或者没有需要标准输入的语句时,会在运行结束后关闭小窗,需自行找到合适的方式解决;
C++(windows)
需要先安装Microsoft Visual Studio,若未未安装不建议使用这种方式。
在目录:Microsoft Visual Studio\2019\Enterprise\Common7\Tools 找到VsDevCmd.bat,打开后使用(code 文件夹地址)打开文件夹;(否则可能无法调试,可以自己尝试)
以相同方式调试文件,同样选择C++(GDB/LLDB),因为C++(windows)不会生成tasks文件。调试之后得到两个json文件,删除launch再选择C++(windows)调试文件,得到新的launch文件。
launch文件不需要修改;
tasks文件需要修改以下:
- 将“type”改为“shell”
- 复制launch文件中的"preLaunchTask": "C/C++: cl.exe 生成活动文件"的值,粘贴至tasks文件的label中,只需要保证两者相同,可自行修改;
- 将command中原本gcc的地址改为cl.exe的地址;
- 再args中添加“/Zi”;
- 将problemMatcher改为"$msCompile
这样就完成了修改,运行若无问题则可正常使用,若出现问题,可考虑关闭窗口,重新再VsDevCmd.bat中打开。若仍出现其他问题,可根据提示搜索解决。
改完后的两个文件
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "cl.exe - 生成和调试活动文件",
"type": "cppvsdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"console": "externalTerminal",
"preLaunchTask": "C/C++: cl.exe 生成活动文件"
}
]
}
tasks.json
{
"tasks": [
{
"type": "shell",
"label": "C/C++: cl.exe 生成活动文件",
"command": "cl.exe",
"args": [
"/Zi",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
后记
开始自学c时,我是用了第二种方式,直到最近开始有c语言的课程,才尝试配置了第一种方式。不考虑编译器本身的优劣,使用GDB的方式相对简单,不要安装VS,占用空间小;而使用windows可能需要安装VS,修改起来较为麻烦,打开方式较为麻烦,可能唯一的优点就是不会在运行完毕后不自动退出窗口。
如果选择了第二种方式,可能的弥补缺点的方法可以是将VsDevCmd.bat创建桌面快捷方式,或将期快捷方式塞到某个是环境变量的目录中,通过运行启动。