3

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-sa /usr/i586-mingw32msvc/lib/libsfml-window-sa / usr/i586-mingw32msvc/lib/libm.a /usr/i586-mingw32msvc/lib/libmsvcr90.a

助けていただければ幸いです。

4

2 に答える 2

1

私は最近この問題を抱えていました。

SFMLはDW2例外処理でコンパイルされますが、デフォルトのMinGWクロスコンパイラー(DebainおよびUbuntuリポジトリ内)はSJLJを使用し、これらは相互に互換性がありません。DW2例外処理を使用して独自のクロスコンパイラを構築する必要がありましたが、これは問題なく機能します。または、既存のSJLJコンパイラを使用してSFML自体をビルドすることもできるため、SFMLもSJLJになります。

DW2コンパイラを構築することにしました。これは、より最新の方法であり、それも良い演習だったからです。

于 2011-03-14T12:07:20.610 に答える
0

gcc の代わりに g++ を使用していることを確認してください。修正する必要があります。ゼロから始めます (再構築する前にすべてを消去します)。別のオプションは、ここで説明されているものである可能性があります.

于 2011-03-13T20:23:34.880 に答える