Nanashi-softプログラマ専用Windows gcc SDL


◇Windowsでgcc+SDL -Cygwinなしで動かす-

ソフト起動の度に Cygwinを起動してコマンドを入力するのは面倒です
Cygwinを起動せずに、エクスプローラから直接プログラムを動かす方法を説明します

○Cygwinは UNIXエミュレータでは無い

実は Cygwinと言うソフトは UNIXエミュレータではありません
UNIX用に書かれたソースコードを再コンパイルし、Windows上で動作するライブラリとリンクしてネイティブ動作させています

○exe起動に必要なもの

既に気付いていると思いますが、ビルド時に Windows用のexeファイルも同時に生成されています

生成された exeファイルをエクスプローラからダブルクリックして起動させてみると、
---
○○.exe - コンポーネントが見つかりません
SDL.dllが見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
---
と表示されて、起動する事ができません

ここでUNIX(Linux)とWindowsのライブラリ扱いの違いに軽く触れておきます
Windowsではご存知の通り、実行形式ファイルは EXEフォーマットで、ライブラリは DLLです
これを UNIX(Linux)に置き換えると、実行形式は ELFフォーマットで、ライブラリは .soなのです
つまり、Windows上で動作させる為には、DLLファイルが必要と言う事になります
尚、SDLを使用せずにプログラムを組んだ場合は、DLLは不要なのでそのまま動作します

SDL.dllは、SDLオフィシャルサイトからダウンロード可能です
http://www.libsdl.org/

2008/1/16現在のトップページだと、左のDownloadの下にある SDL 1.2をクリックして、
Runtime Libraries:の Win32:の下にある SDL-1.2.13-win32.zipをクリックする事でダウンロードできます

このファイルを展開して、SDL.dllファイルをexeファイルと同じフォルダに入れると、起動できるようになります


ここで説明した、SDL_netを使用した場合は、更に SDL_net.dllが必要になります
http://www.libsdl.org/projects/SDL_net/
ここから、SDL_net-1.2.7-win32.zipをダウンロードして、SDL_net.dllをexeファイルと同一フォルダに放り込んで下さい

○配布を行う場合の注意

2008/02/01時点でのライセンスは LGPLですので、製作したソフトと一緒に同梱して配布を行っても問題ありません
但し、リンク時に SDL.dllを組み込んでしまってはいけません。組み込んだ場合は、製作したソフトのソースコードを公開しなければなりません
ライセンスについては、SDLオフィシャルページと LGPLについて調べて下さい


TOPプログラマ専用Windows gcc SDL