无需设置全局环境变量,能否通过VSCode配合MinGW g++编译C++源文件
解决方案
结论
完全可以通过修改VSCode本地配置文件实现编译、运行、调试全流程,无需修改系统环境变量、无需管理员权限。
前置准备
- 先找到你解压的MinGW文件夹内的
g++.exe和gdb.exe的完整绝对路径,示例路径如下(替换为你自己的实际路径):- g++路径:
C:/Users/你的用户名/Documents/mingw64/bin/g++.exe - gdb路径:
C:/Users/你的用户名/Documents/mingw64/bin/gdb.exe
- g++路径:
注意:路径中的反斜杠
\要全部替换为正斜杠/,或者写为双反斜杠\\,避免JSON转义错误。如果路径中包含中文或空格,直接完整写入字符串即可,无需额外处理。
配置tasks.json(编译功能)
直接替换你的.vscode文件夹下的tasks.json内容为以下示例,仅需修改command字段为你自己的g++完整路径:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe 生成活动文件", "command": "C:/Users/你的用户名/Documents/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" }
配置完成后按Ctrl+Shift+B即可直接编译当前打开的cpp文件,生成同目录下的同名exe文件。
配置launch.json(调试、运行功能)
在.vscode文件夹下新建launch.json文件,写入以下内容,仅需修改miDebuggerPath字段为你自己的gdb完整路径:
{ "version": "0.2.0", "configurations": [ { "name": "g++.exe - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:/Users/你的用户名/Documents/mingw64/bin/gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++.exe 生成活动文件" } ] }
配置完成后按F5即可一键编译+调试运行代码,按Ctrl+F5可以直接运行不调试。
可选便携化方案
如果需要经常切换项目,也可以把整个MinGW的bin文件夹复制到你的项目根目录下,然后配置路径为相对路径即可:
command填"./bin/g++.exe"miDebuggerPath填"./bin/gdb.exe"
无需额外复制dll,MinGW编译时默认会把依赖的运行库静态链接到exe中,生成的exe可以直接运行。
排错说明
如果配置后依然报错,直接把你填写的g++完整路径复制到cmd中运行,如果弹出g++: fatal error: no input files提示,说明路径正确,检查JSON文件是否有语法错误(如逗号遗漏、斜杠错误);如果cmd提示找不到程序,说明你复制的路径错误,重新找MinGW的实际存放路径即可。
内容的提问来源于stack exchange,提问作者N. Ope
相关产品推荐
相关产品推荐

