1.下载mingw64并配置环境变量
题主下载的为mingw64_6.4.0
将安装目录下的bin目录配置进环境变量
例如
D:\Coding_Program\ENVIRONMENT\mingw\mingw64_6.4.0\bin
2.安装插件
安装C/C++插件
3.配置launch.json和task.json文件
配置成功后新建一个cpp文件,并用VSCode打开该目录。
点击左方的运行和调试(Ctrl+Shift+D)按钮。
在未配置过时,会显示“创建launch.json文件”字样,点击,选择C++(GDB/LLDB),再选择g++ build and debug active file;
之后会自动弹出**.vscode/launch.json**文件。
我们对其进行更改与配置
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
/*
"program"项是项目启动的路径,你可以自定义启动路径,这样避免cpp和exe在统一文件夹下显得臃肿
"program"项需要与tasks.json中的"args"下的""-o","后面的部分保持一致
${workspaceFolder}表示VSCode打开的文件夹
${fileDirname}表示当前文件的目录名
${fileBasenameNoExtension}表示当前文件不带后缀的名字
*/
"program": "${workspaceFolder}\\exe\\${fileBasenameNoExtension}.exe", //这一条是说明
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"internalConsoleOptions": "neverOpen",
// "externalConsole": true则为外部控制台
"MIMode": "gdb",
"miDebuggerPath": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
/*
"preLaunchTask"项需要与tasks.json的label保持一致,这一点很重要
*/
"preLaunchTask": "C/C++: g++.exe"
}
]
}
之后按**(Ctrl+Shift+P)搜索Task进入Tasks:Configuration Task或者F5按提示进行
会自动创建.vscode/tasks.json**
对其进行修改和配置
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe",
"command": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
// 注意这里修改了编译路径
"${workspaceFolder}\\exe\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "编译器: D:\\Coding_Program\\ENVIRONMENT\\mingw\\mingw64_6.4.0\\bin\\g++.exe"
}
],
"version": "2.0.0"
}
谈谈个人理解,编译的过程是,首先tasks.json会创建exe,根据类似"gcc a.cpp -o a.exe"的命令,也就是里面提到的args项,这里指明了生成的exe路径。
之后,launch.json的program项需要锁定工作路径,找到刚刚生成的exe便可以继续编译,因此这两者的路径需要一致。
此外,只有将launch.json的"preLaunchTask"项需要与tasks.json的label保持一致,才能将两个配时文件联系起来,否则只走launch.json,默认本路径生成exe,并报错找不到指定路径下的exe
4.测试
再进入cpp文件,按F5即可运行或者设断点进行调试。
此外,注意我的项目结构。
成功将exe放到了自定义的文件夹下。