先说遇到的问题
- 选择编译器时找不到安装的mingw目录下gcc.exe和g++.exe
- 终端内显示“生成已完成,但出现错误。 终端将被任务重用,按任意键关闭。”
- 警告“prelaunchtask“g++”已终止,退出代码为1”
- 调试模式下终端内不能正常输入输出,只有run code模式才可以。
解决方案
一 检查gcc、g++、gdb版本
在cmd内输入
gcc -v
g++ -v
gdb -v
需要能看到版本号(而且是你安装的那个版本)。
如果显示有误,请检查环境变量path是否添加了mingw安装路径下的bin文件夹(比如我的就是D:/MinGW/bin),以及是否已经存在其他版本的mingw(我的anaconda上就包含了mingw,所以我将新添加的路径放在path的最前面)。
二 检查mingw安装版本
我一开始从官网下载的是9.2.0版本,发现调试模式下终端内不能正常输入输出,只有run code模式才可以。(要求安装code runner扩展)
于是我参考了VScode调试c程序时内置终端无输出且不能输入,换为了8.1.0版本,解决了问题。
三 检查.vscode下配置文件
后两个文件可能不是必需的,仅作参考。
tasks.json
{
"tasks": [
{
"type": "shell",
"label": "g++",//这里要和launch.json的preLaunchTask一致
"command": "D:/MinGW/bin/g++.exe",//编译器路径
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe",
"-fexec-charset=GBK"//使用gbk防止中文乱码
],
"options": {
"cwd": "D:/MinGW/bin"//编译器bin文件夹
},
"problemMat