1. 下载mingw64,解压后把bin并添加到环境变量
1>编译器介绍
- mingw:专为windows
- gcc:多平台
- msvc :windows,且配合vs使用更佳
注意与调试器gdb和lldb的区别
2. 安装vscode插件:
- 安装C/C++插件
- 安装code runner 插件
3. 运行程序
在不安装插件的情况下,无法运行cpp文件
但是如果只是安装了插件而没有装编译器,vscode也无法运行cpp。
- 生成tasks.json
3.1 tasks.json 样例与参数详解:
3.1.1 样例
javascript
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe", // 输出文件名
"${file}" // 源文件名
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
3.1.2 参数详解
type
:- cppdbg:用于 C/C++ 调试(基于 GDB 或 LLDB)。
- node:用于 Node.js 应用程序调试。
- python:用于 Python 应用程序调试。
- java:用于 Java 应用程序调试。
request
:- luanch
- attach
label
:显示在终端的名称- command:编译器路径,如果编译器已经在环境变量中只需要写
g++.exe
即可,如果没有则需要完整路径 - args:传给编译器的参数
-fdiagnostics-color=always
:启用带颜色的诊断输出-g
:生成调试信息${file}
: 当前活动文件的路径-o
:指定输出文件${fileDirname}\\${fileBasenameNoExtension}.exe
: 输出文件的路径(与当前文件同名,但扩展名为 .exe)
- group:用于任务分组
build
:表示任务是构建任务,编译源代码test
:表示该任务是测试任务,用于测试框架
- 插件提供的功能:
3.2 launch.json 样例与参数详解
3.2.1 样例
javascript
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 可执行文件的路径
"args": [], // 传递给程序的命令行参数
"stopAtEntry": false, // 是否在入口处停止
"cwd": "${workspaceFolder}", // 工作目录
"environment": [],
"externalConsole": false, // 是否使用外部控制台
"MIMode": "gdb", // 使用 GDB 调试
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build", // 之前的构建任务
"miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe" // GDB 的路径
}
]
}
3.2.1 参数详解
见上述代码的注释