}" // 环境变量,将会在程序运行前进行设置
}
], // 环境变量,将会在程序运行前进行设置
"externalConsole": false, // 如果为 true,则为调试对象启动控制台即会有小黑框。如果为 false,它在 Linux 和 Windows 上会显示在集成控制台中。
"MIMode": "gdb", // 指示 MIDebugEngine 要连接到的控制台调试程序。允许的值为 "gdb"、"lldb"。
"miDebuggerPath": "C:/programs/msys2/ucrt64/bin/gdb.exe", // MI 调试程序(如 gdb)的路径。如果未指定,将首先在路径中搜索调试程序。
"setupCommands": [
{ // 模板自带,可以更好地显示STL容器的内容
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe Release" // 调试会话开始前执行的任务,一般为编译程序.g++.exe build active file与tasks中的同名任务对应,即在调试前会执行tasks中的这个任务
},
]
}
tasks.json
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"tasks": [
{
"type": "shell",
"label": "g++.exe Debug", // 任务名称,与launch.json中对应,使用g++编译cpp文件,并在同目录下生成可执行文件
"command": "g++",
"args": [
"-fdiagnostics-color=always",
"-g", // 生成和调试有关的信息
//
// "-fexec-charset=GBK", // 处理mingw中文编码问题
// "-finput-charset=UTF-8", // 处理mingw中文编码问题
//
"-Wall", // 显示所有的警告信息
"${file}",
"-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}", // 指定任务的工作目录
"env": {
"PATH": "C:/programs/msys2/ucrt64/bin;${env:PATH}" // 环境变量,将会在程序运行前进行设置
},
},
"problemMatcher": [
"$gcc"
],
// 所以以上部分,就是在shell中执行 g++ -g -Wall -fexec-charset=GBK -finput-charset=UTF-8 ".cpp" -o ".exe"
// 任务分组
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
},
{
"type": "shell",
"label": "g++.exe Release", // 任务名称,与launch.json中对应,使用g++编译cpp文件,并在同目录下生成可执行文件
"command": "g++",
"args": [
"-fdiagnostics-color=always",
"-O3", // 优化等级3
"-static", // 静态链接
"-lpthread", // 链接pthread库
//
// "-fexec-charset=GBK", // 处理mingw中文编码问题
// "-finput-charset=UTF-8", // 处理mingw中文编码问题
//
"${file}",
"-o", // 指定输出文件名,不加该参数则默认输出a.exe,Linux下默认a.out
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}", // 指定任务的工作目录
"env": {
"PATH": "C:/programs/msys2/ucrt64/bin;${env:PATH}" // 环境变量,将会在程序运行前进行设置
},
},
"problemMatcher": [
"$gcc"
],
// 所以以上部分,就是在shell中执行 g++ -g -Wall -fexec-charset=GBK -finput-charset=UTF-8 ".cpp" -o ".exe"
// 任务分组
"group": {
"kind": "build",
},
"detail": "Release版本生成的任务。"
},
],
"version": "2.0.0"
}
mingw中文编码问题
最新版vscode会自动识别改变终端编码为utf-8,如果运行结果没有乱码,那么可以不用管这个问题。
乱码的主要原因是vscode默认使用的是utf-8编码,而 windows默认使用的是gbk编码。所以需要在vsco