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

SDL2在Windows 11 x64编译成功但无法运行程序求助

解决SDL编译成功但无法运行的问题

核心问题排查与修复步骤

1. 强制指定64位编译目标

MinGW-w64默认可能未明确锁定64位架构,导致生成的可执行文件与Windows 11 x64不兼容。修改编译命令,添加-m64参数强制生成64位程序:

g++ -m64 -Lsrc/lib sample_sdl_code.cpp -o sdl_sample.exe -lmingw32 -lSDL2main -lSDL2

2. 校验SDL库的架构匹配性

  • 确认src/lib下的libSDL2.a、libSDL2main.a均来自SDL安装包的x86_64-w64-mingw32/lib目录,禁止混用32位库文件。
  • 验证根目录的SDL2.dll为64位版本:可通过MinGW的file命令检查,输出应包含x86-64标识。

3. 调整编译命令的参数顺序

将源文件放在链接参数之前,避免链接器解析依赖时出现异常:

g++ -m64 sample_sdl_code.cpp -Lsrc/lib -o sdl_sample.exe -lmingw32 -lSDL2main -lSDL2

4. 确认终端环境的编译器架构

运行以下命令查看编译器目标架构:

g++ -v

输出的Target字段必须为x86_64-w64-mingw32,如果显示i686-w64-mingw32,说明你误使用了32位MinGW编译器,需切换到64位终端环境。

5. 检查生成的可执行文件类型

用file命令验证程序架构:

file sdl_sample.exe

正常输出应为PE32+ executable (console) x86-64, for MS Windows,如果显示PE32 executable,说明生成了32位程序,需重新调整编译参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:23:24