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

为何我基于控制台的C++游戏在其他Windows机器无法运行?(缺失DLL报错)

解决MinGW编译的EXE依赖缺失问题

方案1:静态编译(将依赖嵌入EXE,推荐)

MinGW默认采用动态链接C++标准库及GCC运行时库,导致生成的EXE依赖外部DLL。通过添加静态链接参数,可将所有依赖直接打包进EXE,无需额外文件:

修改你的编译命令,添加静态链接相关参数:

"E:\MinGW\bin\g++.exe" -fdiagnostics-color=always -g "E:\My Apps\C++\Projects\TTT-game\TTT-Game.cpp" -o "E:\My Apps\C++\Projects\TTT-game\TTT-Game.exe" -lWinmm -lGdi32 -static -static-libstdc++ -static-libgcc -static-libwinpthread

参数说明:

  • -static:全局启用静态链接(对所有支持静态链接的库生效)
  • -static-libstdc++:强制静态链接C++标准库(对应缺失的libstdc++-6.dll)
  • -static-libgcc:强制静态链接GCC运行时库(对应缺失的libgcc_s_seh-1.dll)
  • -static-libwinpthread:强制静态链接线程库(对应缺失的libwinpthread-1.dll)

编译完成后,生成的EXE可直接在其他Windows电脑上运行,无需额外文件。

方案2:携带依赖DLL(适合控制EXE体积的场景)

如果不想通过静态链接增大EXE体积,可将缺失的DLL与EXE放在同一目录打包分享:

  • 打开你的MinGW安装目录,进入bin文件夹
  • 找到libstdc++-6.dll、libgcc_s_seh-1.dll、libwinpthread-1.dll三个文件
  • 将它们复制到你的TTT-Game.exe所在文件夹,一起打包发送给朋友

注意:必须使用与你编译时相同版本MinGW的DLL,避免版本不兼容导致运行错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:54:56