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

MinGW-w64 g++编译C++代码不生成可执行文件 同代码WSL编译正常

MinGW-w64 g++无输出无编译产物问题解决方案

你提供的-v编译日志只输出到了编译生成汇编文件的步骤,后续的汇编、链接步骤完全没有执行,说明cc1plus.exe(C++编译前端)执行过程中被强制终止,因此没有错误输出也没有生成最终可执行文件。你可以按照以下步骤排查解决:

  • 排查安全软件拦截
    Windows Defender或第三方杀毒软件极大概率会误删/拦截MinGW的编译组件,你可以先将以下两个路径加入安全软件的排除列表:
    • MinGW安装根目录:D:\SDK\mingw-w64
    • 你的项目工作目录
      排除后重新执行编译命令测试。
  • 验证MinGW组件可正常运行
    你使用的是32位版本的MinGW(i686架构),如果系统缺少32位运行库会导致组件启动失败。你可以直接在Powershell执行以下命令查看是否有缺失依赖的报错:
D:\SDK\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\libexec\gcc\i686-w64-mingw32\8.1.0\cc1plus.exe --version

如果弹出缺少DLL的报错,安装对应版本的Visual C++ 32位可再发行组件即可,也可直接替换为x86_64架构的64位MinGW版本规避该问题。

  • 排查路径与权限问题
    先将测试源码移动到纯英文、无空格、无特殊字符的路径下(例如D:\test\main.cxx),在Powershell中切换到D:\test目录后,执行以下简化命令测试,排除相对路径、特殊字符路径的解析问题:
D:\SDK\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\g++.exe -g main.cxx
  • 获取更详细的错误信息
    编译时添加-v -save-temps参数保留所有编译中间产物,同时编译后执行echo $LASTEXITCODE查看进程退出码:
    • 若退出码为0xC0000005或类似拒绝访问的错误码,可确认是安全软件拦截问题
    • 若退出码对应其他错误,可根据对应错误码进一步定位组件损坏、配置错误等问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:57:01