Visual Studio Code是微软旗下的一个跨平台的IDE。相比于传统臃肿庞大的Visual Studio,VSCode是轻量级的工具,既可以使用插件拓展,又可以添加自定义的编译、调试配置。下面介绍如何将 VSCode 配置为一个 C/C++ 的 IDE
首先,你需要在 Windows 上安装 C/C++ 编译器(gcc/g++)和调试器(gdb),在这里下载最新版本三个组件,按照图示选择版本。
下载完成后解压文件夹到你想要的位置,我这里用的是 C:\Program Files\ 。接下来在环境变量(控制面板\所有控制面板项\系统 -> 高级系统设置 ->环境变量 -> 选择”Path”单击”编辑”)中加入工具链所在的目录,如图
为了测试刚才的操作是否成功,按下 Win+R 输入 cmd 打开命令行,分别执行 gcc --version
, g++ --version
和gdb --version
三个命令。如果没有提示找不到程序并出现与下图类似的结果,那么编译环境算是配置好了
接着说一下 VSCode 的配置,VSCode 可以在官网下载,双击安装之后稍等片刻就可以启动了。进入VSCode之后在左侧选择扩展,搜索C/C++安装插件(当然如果不习惯英文版的话可以装个汉化插件,直接搜Chinese安装就有了)
接着我们来建一个 C/C++ 项目。新建一个目录(比如说我这里叫 HelloWorld ),在目录下新建一个.c文件(比如说我这里是helloworld.c)。用 VSCode 打开这个文件夹
新建一个配置
在弹出来的 launch.json 文件中用以下配置覆盖。若在刚才没有进行添加环境变量的操作,则将两处 “gdb.exe” 改为你解压的 MinGW 中 gdb 的完整路径。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"environment": [],
"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"internalConsoleOptions":"neverOpen",
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "C Debug(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"environment": [],
"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"internalConsoleOptions":"neverOpen",
"MIMode": "gdb",
"miDebuggerPath": "gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "gcc_compile", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
接下来在菜单栏上选择“终端”->“配置默认生成任务” ( Terminal -> Configure Default Build Task),一路选择第一个选项,然后再弹出来的 tasks.json 里面用以下配置覆盖
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "g++_compile",
"command": "g++",
"args": ["-g","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
},
{
"label": "gcc_compile",
"command": "gcc",
"args": ["-g","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
"problemMatcher": {
"owner": "c",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}
如果你使用的是旧版 VSCode 或者使用上述配置依然出现编译错误,那么你可能需要再添加一个 c_cpp_properties.json 文件,内容如下(其中 includePath 下面几行需要改为你的MinGW路径,即替换 “C:/Program Files/mingw64” 为你解压出MinGW的路径)
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/Program Files/mingw64/x86_64-w64-mingw32/include",
"C:/Program Files/mingw64/include",
"C:/Program Files/mingw64/opt/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
保存该文件并复制到你的项目目录下的 .vscode 文件夹内即可
按下F5或者在那只小虫里面点运行与调试(绿色的小三角按钮),接着你就可以像任何其他的IDE那样,编辑、调试你的程序啦!
你还可以在行号左侧单击,打下断点,观察程序的运行状态。在“监视”一栏中还可以添加表达式
本文涉及的 MinGW 的64位安装包与项目模板:
链接: https://pan.baidu.com/s/1UsBPksTneB4n0xoTvIF5JQ 提取码: w788
参考: