VScode c++运行终端重用(gcc生成文件活动终止)问题解决

1.在使用vscode配置c/c++时,我们会发现总是出错的,一会儿没有gcc文件,或者终端重用,对于gcc文件问题,只需要下载mingw文件,在设置中搜索编辑系统环境变量,然后打开,在系统变量里面加入gcc所在的文件夹即可。

mingw的下载地址如下:MinGW-w64 - for 32 and 64 bit Windows - Browse /Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-posix at SourceForge.net

然后下载seh版本即可。

2.对于终端重用问题,我尝试了很多方法,无论是根据一些教程改task.json文件中的command、presentation的“panel”,又或者改launch.json文件都不对,其实后来才发现,原来是因为task.json文件中的"type"出现了问题。在原来的task.json文件中,"type":"cppbuild"

运行程序

他会提示生成终止,

然后再次转到task.json文件,将type:"cppbuild"改为"type":"process",然后修改如下:

再次运行程序:

运行正确,得到解决。

补充:当我们选用gcc调试时,以上方法是正确的,但是当我们选用g++调试时,以上方法又会重新报错

再次打开task.json文件,我们会发现在原本的代码下面出现了新的代码:

可以看到两种代码除了"label"和"command"里面的运行程序不同,一个"gcc.exe"就是gcc生成,一个是"g++.exe",也就是g++生成,其他地方都是相同的。解决方法和上面一样,此时我们只需要将下面新出现的代码的type:"cppbuild"改为"type":"process"即可。

再次选择g++.exe运行

结果正确,此时无论是gcc还是g++都可以正确运行或者调试。

ps:如果原本的task.json文件已经被修改了,又不知怎么改回去,只需要删了task.json文件,然后重新调试就会出现新的task.json文件,然后修改type即可。如果还不可以,尝试新建一个文件夹,老文件夹删了,我用之前的老文件夹不可以,但是换成新文件夹就可以了。

### 解决VSCode中C代码“生成活动终止”的错误 当在VSCode中编译或运行C代码时遇到`preLaunchTask "C/C++: g++.exe 生成活动文件" 已终止,退出代码为-1`的错误,可以采取以下措施来解决问题。 #### 修改路径名称 确保项目所在的路径不包含任何中文字符或其他特殊字符。如果存在这样的情况,则应更改文件名和文件夹名为纯英文字符[^2]。 #### 检查源码是否有误 仔细审查所写的程序是否存在语法错误或者其他可能导致无法成功构建的因素。可以通过其他IDE或者命令行工具尝试编译相同的代码片段来进行验证。 #### 配置tasks.json文件 对于使用MinGW-w64作为开发环境的情况,在`.vscode/tasks.json`文件内指定正确的GCC/G++可执行文件位置非常重要。例如: ```json { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "C:\\Program Files\\mingw64\\bin\\gcc.exe", // 或者"g++.exe" "args": ["-g","${file}","-o","${workspaceFolder}\\${fileBasenameNoExtension}.exe"], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] } ``` 上述配置指定了具体的Gcc编译器路径,并设置了基本的编译选项以及输出目标文件的位置[^3]。 #### 删除并重建tasks.json文件 有时现有的tasks.json可能存在问题,可以选择将其删除,之后通过快捷键组合`Shift + Ctrl + P`调出命令面板,输入`Tasks: Configure Task`按照提示重新创建一个新的任务定义文件。这一步骤有助于排除因手动编辑而引入的人为失误[^4]。 #### 关闭调试模式 确认当前不在调试状态下操作;有时候即使停止了调试会话也可能残留某些进程影响到后续的操作,因此建议完全关闭VS Code后再重启尝试新的编译动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值