本文讲述如何在vscode中配置C语言运行环境,以及调试。
安装mingw-w64
在下面的链接中下载mingw-w64:
下载mingw-w64
点击x86_64-win32-seh下载一个压缩包,将其解压到任意目录。
解压后找到bin目录,将其添加到环境变量path中。
添加环境变量
在设置中搜索「环境变量」,打开「编辑系统环境变量」,在系统变量中找到Path:
点击编辑-新建,将刚才的bin目录添加到Path中:
即完成了环境变量配置。
下载vscode并安装相关插件
在下面的链接中下载vscode:
下载vscode
安装完成后打开,找到扩展:
我们需要安装如下插件:
- Chinese (Simplified) (简体中文) Language Pack :中文语言包,用于将vscode界面切换到中文
- C/C++:C语言必备插件
- C/C++ Compile Run:按下F6直接编译运行C语言代码文件,编译生成的.exe文件默认会创建在当前目录下的output文件夹中
- Code Runner:支持多种语言的编译运行,右键运行代码
运行与调试
首先使用vscode打开一个文件,点击右侧的运行与调试,创建launch.json文件。
然后将如下代码复制到launch.json文件中。
{
"version": "0.2.0",
"configurations": [
{
"type": "cppdbg",
"request": "launch",
"name": "C/C++",
"program": "${fileDirname}\output\${fileBasenameNoExtension}",
"preLaunchTask": "gcc",
"cwd": "${fileDirname}"
}
]
}
其中version和configurations是必需的。
- type(必需):调试的类型,一般由扩展创建
- request(必需):请求的类型
- name(必需):调试的名字
- program:运行程序的地址,这里为了和使用C/C++ Compile Run插件运行保持一致,将地址设置为了当前目录下的output文件夹中的同名程序
- preLaunchTask:在运行前执行的任务,此项值对应tasks.json中的label,二者的值需要一致
- cwd:允许替换目录下的文件
然后在launch.json文件同一个目录下创建tasks.json文件。将如下代码复制到tasks.json文件中。
{
"tasks": [
{
"type": "shell",
"label": "gcc",
"command": "gcc",
"args": [
"${file}",
"-o",
"${fileDirname}\output\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
- type:任务类型,一般由扩展创建,这里使用shell调用了shell终端
- label:任务的标签,用于匹配launch.json中的preLaunchTask
- command:任务要执行的命令,这里用shell终端执行gcc命令,gcc命令是mingw-w64编译C语言源码的程序,使用前需要先将mingw-w64/bin添加到环境变量中
- args:命令使用的参数
"${file}":表示当前文件
"-o":使用这个选项的gcc命令会将编译生成的.exe文件创建在下面指定的位置
"${fileDirname}\\output\\${fileBasenameNoExtension}.exe":编译生成的.exe文件位置(当前目录下的output文件夹 当前文件名.exe) - options:这里表示允许替换已有的同名文件
这里两个配置文件,tasks.json调用gcc命令编译一个.exe文件,然后launch.json则执行这个.exe文件并输出到终端中。
设置C/C++ Compile Run插件
因为vscode自带的调试运行在自带的终端中,所以这里将C/C++ Compile Run插件运行时设置为打开一个外部终端窗口,以实现不同的功能。
点开扩展的页面,找到扩展设置,然后在扩展设置中找到Run-in-external-terminal(也可以直接搜索),打上对号即可。
设置Code Runner插件
因为vscode自带的调试运行在自带的终端中,所以这里将Code Runner插件运行时设置为输出在输出窗口,并且为了和C/C++ Compile Run插件保持一致,将编译运行产生的.exe文件放在output文件夹中。
在Code Runner设置中找到Run In Terminal,取消打钩。
然后右上角打开设置文件settings.json:
将c后面的内容改成
cd $dir && gcc $fileName -o output\$fileNameWithoutExt && output\$fileNameWithoutExt