mieki256's diary



2018/03/15(木) [n年前の日記]

#2 [windows][ruby][mruby] MSYS2 と SDL2 についてメモ

MSYS2 と SDL2 について分かったことをもう少しメモ。

MSYS2上から出来上がった .exe を実行できた。 :

以前、MSYS2上(mintty上)から、ビルドして出来上がった .exe を実行できないとメモしたけれど。

ふと、うっかり、*NIXを使ってる感覚になってしまって、hoge.exe と打ち込まず、./hoge.exe と打ち込んだら、実行できてしまった。とメモ。

なんで? そういうものなの?

dllの在り処。 :

MSYS2 の場合、/mingw32/bin/ 以下に SDL2 関係のdllが入ってる模様。pacman -S で、SDL2関係のアレコレをインストールした場合の話だけど。
$ ll /mingw32/bin/SDL2*
-rwxr-xr-x 1 mieki256 None 1113744 3月   5 14:46 /mingw32/bin/SDL2.dll
-rwxr-xr-x 1 mieki256 None  136476 3月   5 14:54 /mingw32/bin/SDL2_image.dll
-rwxr-xr-x 1 mieki256 None  142633 11月  9 14:24 /mingw32/bin/SDL2_mixer.dll
-rwxr-xr-x 1 mieki256 None   29622 1月  10  2016 /mingw32/bin/SDL2_net.dll
-rwxr-xr-x 1 mieki256 None   38303 4月   6  2016 /mingw32/bin/SDL2_ttf.dll

実際は、これだけでは動作に足りないはず…。おそらく、以下の .dll が必要になりそう。SDL2_image を利用してpng画像を使ったり、oggを再生したりするなら、だけど。
libFLAC-8.dll
libfreetype-6.dll
libjpeg-9.dll
libmodplug-1.dll
libmpg123-0.dll
libogg-0.dll
libpng16-16.dll
libtiff-5.dll
libvorbis-0.dll
libvorbisfile-3.dll
libwebp-4.dll
libwebp-7.dll
SDL2.dll
SDL2_gfx.dll
SDL2_image.dll
SDL2_mixer.dll
SDL2_net.dll
SDL2_ttf.dll
smpeg2.dll
zlib1.dll
ビルドして出来上がった .exe が置いてある場所に、上記のdllもコピーしてしまえば配布できるようになるのだろうか。

libgcc_s_dw2-1.dllが必要らしい。 :

出来た .exe を他のPC(Windows8.1機)に持っていって実行してみたら、「libgcc_s_dw2-1.dllがねえよ」と怒られてしまった。そんなファイルも必要になるのか…。

g++ のオプションに、-static-libgcc -static-libstdc++ を指定すると静的リンク(スタティックリンク)になる、という話も見かけたけれど、試してみても効果が無い。exe のファイルサイズは以前と変わらず。なんでだろ。

_MinGWでlibgomp-1.dllがstatic linkできない問題(gcc, OpenMP) - Qiita
_Windows-アプリケーション/MinGW-MSYS/MinGWでのビルド - yanor.net/wiki

他にも、-static -static-libgcc -static-libstdc++ をつけると良い、という話も見かけたけれど、試してみたら SDL2 関係で大量にエラーが出た。うーん。

仕方ないので、/mingw32/bin/ 以下から、libgcc_s_dw2-1.dll をコピーしてきたけれど。その状態で実行したら、今度は「libwinpthread-1.dll が無いぞ」と怒られた。ソレも必要なのか…。コレも、/mingw32/bin/ 以下から、libwinpthread-1.dll をコピーしてみるか…。

各dllをコピーしてきた状態なら、他のPC上でも一応動いた。

しかし、一々dllをコピーするのは面倒だな…。スタティックリンクとやらをしてみたい…。

以上です。

過去ログ表示

Prev - 2018/03 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project