持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
一、安装VsCode
参看 Visual Studio Code 写代码前的准备。
二、安装相关扩展
-
在Extensions view(扩展视图)通过搜索安装 C++ 扩展 (Ctrl+Shift+X).
三、安装mingw-w64
创建它是为了在 Windows 系统上支持 GCC 编译器,使用 mingw-w64 中的 GDB 调试器来创建在 Windows 上运行的程序。
-
通过 MSYS2 获得最新版本的 Mingw-w64,它提供了 GCC、Mingw-w64 和其他有用的 c++ 工具和库的最新原生版本。
您可以从 MSYS2 页面下载最新的安装程序,或使用此链接安装,具体教程还可以参考官方文档。
-
完成安装后的界面如下所示
-
可以根据需要,安装 mingw-w64 GCC
pacman -S mingw-w64-x86_64-gcc -
查看安装好的 gcc 版本
-
安装 Mingw-w64 工具链(
pacman -S --needed base-devel mingw-w64-x86_64-toolchain)。在MSYS2终端下执行pacman命令。接受默认值以安装工具链组中的所有成员。全部安装按下Enter键即可。 -
将 Mingw-w64 bin 文件夹的路径添加到 Windows 的 path 环境变量中,操作步骤如下:
-
在Windows搜索栏中,键入
sysdm.cpl -
添加这个路径:
C:\msys64\mingw64\bin到Path -
最终点击确定即可
-
-
检查你的 Mingw-w64 工具是否正确安装,是否可用
四、创建 C++ 项目
4.1 创建工程文件夹
- 使用 Mingw-w64 命令行工具,键入
mkdir projects cd projects mkdir helloworld cd helloworld code . - 如下所示
- 通过选择 Yes, I trust the authors 来接受 Workspace Trust弹窗
- 此时 vscode 将被打开(
code .) - 一般在你的工程目录的
.vscode文件夹下有如下文件:tasks.json(build instructions)launch.json(debugger settings)c_cpp_properties.json(compiler path and IntelliSense settings)
4.2 创建源码文件
- 新建文件 helloworld.cpp
- 代码如下所示,Ctrl+S保存
#include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"}; for (const string& word : msg) { cout << word << " "; } cout << endl; }
4.3 编译运行
-
在 vscode 终端键入
g++ .\helloworld.cpp -
此时将生成 a.exe
-
在 vscode 终端键入
.\a.exe -
此时代码被正确执行,结果在终端输出
-
g++ -g .\helloworld.cpp -o mySingleHelloworld,其中-g表示生成的可执行文件带有调试信息;-o mySingleHelloworld表示可以为生成的可执行文件自定义名称,大家可以自行尝试。
4.4 调试配置
4.4.1 launch.json 配置
-
点击边栏左侧的 Launch&Debug 按钮,点击创建 launch.json 文件
-
你将会发现项目的
.vscode文件夹下生成了launch.json启动配置文件。 -
GDB 调试代码,在列表中选择 C++ (GDB/LLDB)
-
然后系统将创建一个默认的 launch.json 文件
-
将光标放在图中configuration的[]中,点击Add configration
-
在接下来弹出的选项中,选择C/C++:{gdb}启动
-
然后就可以看到类似代码
下面来一起看一下里面的参数。
以下属性对于每个启动配置都是必需的:
- type 用于此启动配置的调试器类型。例如,每个安装的调试扩展都引入一个 type: 例如,node 用于内置的 node 调试器,或者 php 和 go 扩展 dephp和go。
- request 此启动配置的请求类型。目前支持
launch和attach。 - name 在Debug启动配置下拉菜单中显示的对读者友好的名称。
其他属性:
- program 启动调试器时要运行的可执行文件或文件(所以我们需要先build生成一个执行文件 helloworld.exe,vs中的F5一键就把这些过程都做了:编译链接生成)。具体的需要键入运行时启动的程序路径:${workspaceFolder} ,其为工程目录,表示当前 VSCode 打开的文件的根目录。这里先配置成
"program": "${workspaceFolder}\\helloworld.exe", - args:表示启动程序时传递给程序进行调试的参数。可以为空。可以根据需求以后配置。
- cwd: 表示用于查找依赖项和其他文件的当前工作目录。你也可以在当前目录下创建 build 文件夹, 在此文件夹下运行,这里配置为:
"cwd": "${workspaceFolder}", - "preLaunchTask": "C/C++: g++.exe 生成活动文件" 表示调试之前要做的
- 修改过后你将看到
- 如果下图中的 miDebuggerPath 的 gdb.exe 的所在路径中没有 gdb.exe 则需要在 MINGW64 中安装,然后填写 gdb 所在的路径即可
pacman -S mingw-w64-x86_64-gdb-multiarch
4.4.2 tasks.json 配置
-
按下编辑器右上角的 play button
-
选择 C/C++: g++.exe build and debug active file
-
你将会发现项目的
.vscode文件夹下生成了tasks.json,它存储了 build 配置。{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe 生成活动文件", "command": "C:\\msys64\\mingw64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ], "version": "2.0.0" } -
tasks.json 中的变量可以参考 variables reference 理解,更多的 tasks.json 的配置细节,可以参看官网文档。
- 你可以修改你的
tasks.json去 build 多文件的 C++ 项目。eg."${workspaceFolder}/*.cpp"代替${file}.这将 build 所有的在你的工程中的.cpp文件. 你可以修改输出文件的路径将"${fileDirname}\${fileBasenameNoExtension}.exe"改成"${workspaceFolder}\myProgram.exe"。 - 这里修改如下:
- 你可以修改你的
4.4.3 debug
- 添加断点,点击调试(F5)
- 选择如下,即可开始调试
- 运行结束后,你将在终端上看到运行结果