gpt4 book ai didi

c++ - 静态链接 SFML 库时 MinGW 中的问题

转载 作者:太空狗 更新时间:2023-10-29 23:09:24 27 4
gpt4 key购买 nike

我有一个程序在 Linux 下编译没有错误,但是当我使用 MinGW 为 Windows 编译它时它无法运行,因为它说它旁边需要一些 DLL。所以我决定静态链接它,但它输出了一些错误:

/usr/i586-mingw32msvc/lib/libsfml-window-s.a(WindowImplWin32.o):WindowImplWin32.cpp:(.text+0x146e): undefined reference to `__Unwind_Resume'
/usr/i586-mingw32msvc/lib/libsfml-window-s.a(WindowImplWin32.o):WindowImplWin32.cpp:(.text+0x17d0): more undefined references to `__Unwind_Resume' follow
/usr/i586-mingw32msvc/lib/libsfml-window-s.a(WindowImplWin32.o):WindowImplWin32.cpp:(.eh_frame+0x12): undefined reference to `___gxx_personality_v0'
/usr/i586-mingw32msvc/lib/libsfml-window-s.a(Joystick.o):Joystick.cpp:(.eh_frame+0x11): undefined reference to `___gxx_personality_v0'
collect2: ld returned 1 exit status

它似乎有一些外部依赖性。这些是什么,我如何链接它们?

编辑:

这是我在命令行中输入的内容:

i586-mingw32msvc-g++ "./main.cpp" -o "./win32.exe" /usr/i586-mingw32msvc/lib/libsfml-graphics-s.a /usr/i586-mingw32msvc/lib/libsfml-window-s.a /usr/i586-mingw32msvc/lib/libm.a /usr/i586-mingw32msvc/lib/libmsvcr90.a

帮助将不胜感激。

最佳答案

我最近也遇到过这个问题。

就是 SFML 是用 DW2 异常处理编译的,但是默认的 MinGW 交叉编译器(在 Debain 和 Ubuntu 仓库中)使用的是 SJLJ,它们彼此不兼容。我必须构建自己的带有 DW2 异常处理的交叉编译器,并且可以完美运行。或者,您可以使用现有的 SJLJ 编译器构建 SFML 本身,因此 SFML 也将是 SJLJ。

我决定构建一个 DW2 编译器,因为它是更现代的方法,也是一个很好的练习。

关于c++ - 静态链接 SFML 库时 MinGW 中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com