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

为MinGW编译SFML时遭遇`_setjmp`未定义引用错误求助

解决WinLibs MinGW编译SFML 2.6时的_setjmp未定义引用错误

我按官方教程用WinLibs最新版64位MinGW编译GitHub上的SFML 2.6版本,执行mingw32-make时,在输出一系列“Building CXX object...”信息后出现以下链接错误:

h:/winlibs_64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/jayok/Downloads/SFML-2.6.x/SFML-2.6.x/extlibs/libs-mingw/x64/libfreetype.a(sfnt.c.obj):sfnt.c:(.text+0x5614): undefined reference to `_setjmp'
h:/winlibs_64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/jayok/Downloads/SFML-2.6.x/SFML-2.6.x/extlibs/libs-mingw/x64/libfreetype.a(smooth.c.obj):smooth.c:(.text+0x77a): undefined reference to `_setjmp'
collect2.exe: error: ld returned 1 exit status
mingw32-make[2]: *** [src\SFML\Graphics\CMakeFiles\sfml-graphics.dir\build.make:602: lib/sfml-graphics-2.dll] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:307: src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/all] Error 2
mingw32-make: *** [makefile:155: all] Error 2

解决方法

  • 补充链接依赖:在CMake配置阶段添加-lmingwex链接库,执行cmake命令时改为:

    cmake -G "MinGW Makefiles" -DCMAKE_EXE_LINKER_FLAGS="-lmingwex" ..
    

    若已生成Makefile,也可手动修改src/SFML/Graphics/CMakeFiles/sfml-graphics.dir/link.txt,在文件末尾加上-lmingwex,再重新执行mingw32-make。

  • 替换自带freetype库:SFML自带的libfreetype.a是用旧版MinGW编译的,和WinLibs的GCC 12.1.0 ABI不兼容。可以自行编译最新版freetype,替换extlibs/libs-mingw/x64下的对应文件,或直接用WinLibs自带的freetype库替换。

  • 降级MinGW版本:换成GCC 10.x这类旧版本的MinGW,再重新编译SFML,可规避版本兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:57:19