You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode可编译C代码但无法编译C++代码的解决求助

解决VSCode中C++编译/运行报错(exit code -1)的方案

步骤1:确认g++编译器可正常访问

  • 检查C:\MinGW64\bin目录下是否存在g++.exe,若缺失需重新下载完整的MinGW64包
  • 打开命令提示符,输入g++ --version,若能输出版本信息说明环境变量配置正确;若提示“找不到命令”,需将C:\MinGW64\bin添加到系统环境变量PATH,然后重启VSCode和命令提示符

步骤2:配置Code Runner扩展使用g编译C文件

  • 打开VSCode设置(快捷键Ctrl+,),搜索「Code Runner: Executor Map」
  • 点击「编辑settings.json」,找到cpp对应的配置项,修改为:
    "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
    
  • 保存配置文件后重启VSCode

步骤3:修正C/C++扩展的编译器配置

  • 按下Ctrl+Shift+P,选择「C/C++: Edit Configurations (UI)」
  • 将「Compiler path」设置为C:\MinGW64\bin\g++.exe
  • 将「IntelliSense mode」设置为gcc-x64
  • 保存配置

步骤4:排查代码中的运行时错误

你的C++代码存在潜在的运行时崩溃问题:当没有用户选择「Terreno agricolo」(tipo为b/B)时,变量erAg的值为0,此时执行mediaAg = sommaAg / erAg会触发除零错误,导致程序崩溃并返回exit code -1。

修复方案:在计算平均值前先判断分母是否为0,例如:

case 'b':
case 'B':{
    sommaAg = sommaAg + importo;
    if (erAg != 0) { // 添加非零判断
        mediaAg = sommaAg / erAg;
    } else {
        mediaAg = 0; // 或其他合理默认值
    }
    break;
}

同理,mediaEd的计算也需要添加类似的非零判断。


内容的提问来源于stack exchange,提问作者Zaccaria Francescato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:05:23