在win10 系统上用vscode编辑器来编译C++,首先Windows系统上必须要安装 MinGW-w64。其安装的详细过程可参考(MinGW-w64安装教程),在参考这篇文章进行安装MinGW-w64时,由于一些原因无法下载,所以总提示某个文件下载失败。最后找的离线下载地址(MinGW-win64离线版本下载地址)来将其下载到本地后,再解压到指定的文件夹,该文件夹即为MinGW-win64的安装目录。将解压后的目录中的bin 文件夹路径(D:\ProgramFiles\Mingw64\bin)添加到系统变量的Path路径下,该方法参考(windows下安装mingw-w64)。
安装好MinGW-w64 后可以打开 cmd 或者 PowerShell ,输入 g++ --version 来查看,出现如下所示版本信息即可。
1、直接在终端通过命令行进行编译与运行
(1)、首先在打开的目录中新建 c1.cpp 源文件,如下
(2)、按 Ctrl + ~ 键来打开终端,然后切换到 c1.cpp 文件所在的路径下。或者直接右键源文件,点击箭头所指选项,将直接以 c1.cpp 文件所在路径打开终端。(在Windows系统下的路径斜杠为“\”)
(3)、在终端直接以命令行的形式来对 c1.cpp 源文件进行编译(在Windows系统中,可执行文件必须以 .exe 为后缀,Linux则无此限制),则会在当前目录下产生 *.exe 文件。
(4)、运行编译所产生的 c1.exe 文件。
2、通过插件 Code Runner 来直接一步实现编译与运行,简化了操作流程。
Code Runner插件默认的c/c++编译器是gcc/g++,需要提前安装好Mingw-64,并且设置好环境变量 。
点击右上角的小三角形,即可进行编译与运行,如下图:
注意:Code Runner插件相当于自动的执行 g++ *.cpp -o *.exe ,当程序的编译和执行还需要其它的参数时,可能用Code Runner插件将无法有效的编译。此时可以使用手动的命令行来进行编译与运行。
以上的两种方法都只是对 *.cpp程序直接进行编译运行,并不能实现对程序进行断点调试。要实现对程序的断点调试,则需要对vscode进行配置。
1、首先在打开的根目录下建立 c1.cpp 源文件。
2、配置 launch.json 文件
(1)、依次点击如下图所示的编号(或者直接按F5后,,再点击下图编号3),在根目录下创建 .vscode 文件夹及 launch.json 文件。
(2)、将箭头4处的程序路径修改为编译后生成的 *.exe 可执行文件的路径名。将箭头5处修改为Mingw-64安装目录中的gdb.exe文件的路径。在箭头5处的下面添加调试程序之前需要进行编译的选项。
修改后的 launch.json 文件内容如下:
launch.json 文件配置如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/ProgramFiles/Mingw64/bin/gdb.exe",
"preLaunchTask": "g++",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
3、配置 tasks.json 文件
(1)、 按 Ctrl+Shift+P 或者 F1 后,在出现的命令提示栏中输入Run Task ,然后选中箭头所指的选项。
(2)、依次选中下图箭头所指的选项 ,并按 Enter 键确定。
(3)、将会在根目录中的.vscode 文件夹中出现 tasks.json 文件,并处于打开编辑状态。如下图
(4)、对 tasks.json 文件进行编辑,该文件作用是相当于把 *.cpp文件编译成 *.exe文件。
修改后的 tasks.json 文件如下:
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++",
//"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
]
}
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
}
}
4、将 launch.json 文件和 tasks.json 文件配置完成后,便可回到 c1.cpp 文件下,设置断点,按F5 开始启动断点调试。
然后再按F10 进行单步执行(F11 可以进入函数或对象内部)。在单步调试的过程中可以将鼠标放在相应的变量上,便会显示相应变量的值。也可以在左侧的调试面板上查看当前局部变量的值。
参考资料:
[1] windows下使用vscode编写运行以及调试C/C++
[2] 在 Windows 下使用 Visual Studio Code 搭建 C 语言开发环境
[3] 使用 VS Code 搭建适用于 ACM 练习的 C/C++ 开发环境