SDLの開発環境作成方法


SDLの開発環境の作成方法を書いておきますので、改造してみたい、という人は試してみてください。

1.Cygwinのインストール
http://cefiro.homelinux.org/resources/doc/cygwin/install-01.html
インストール時にダウンロードするURLを選択しますが、適当なURLを選んでとりあえず全部のパッケージを入れましょう。

2.SDLのインストール
SDLでコンパイルするためには、CygwinにSDLのパッケージを入れる必要があります。
Cygwinのインストールをもう一度実行して、ダウンロードするURLに次を入力します。
http://cefiro.homelinux.org/resources/files
パッケージ一覧にSDLが存在します。SDLの中にあるパッケージは全部入れましょう。
SDL_mixerとSDL_gfxもこの中にあります。

3.gfxがリンクできない場合
SDL_gfxの機能を使った場合に、コンパイルはできるけどシンボル名が違うのでリンクができないといわれる場合次の方法を試してください。
SDL_rotozoom.h の、
ifdef WIN32
#ifdef
BUILD_DLL
#define
DLLINTERFACE __declspec(dllexport)
#else #define
DLLINTERFACE __declspec(dllimport)
#endif #else #define
DLLINTERFACE
#endif
この辺が原因です。
ようは、DLL として作ってないのに、i#fdef のせいで DLL エクスポート(インポート)されています。
なので、上の部分をガッツリ削って、
#define
DLLINTERFACE
だけにすれば解決します。
SDL_rotozoom.hはCygwinをインストールしたフォルダのどこかに入ってます。

4.パスを設定する
DOS窓からコンパイルする時はCygwinのパスを設定する必要があります。
私は以下の内容のバッチファイルを作成してmakeしています。
ここではCygwinのインストール先はd:\cygwinとなっています。
set path=path+;d:\cygwin\bin;D:\cygwin\usr\local\mingw32\bin
make

5.makefileの編集
SDL_gfxを使う場合はそのままだとリンクされていないので、makefileを編集する必要があります。
sdl-config --libsにするとディフォルトのライブラリがリンクされますが、これにSDL_gfxは含まれないので、自分でリンクするライブラリを書きます。
#LDFLAGS
= `sdl-config --libs`
LDFLAGS = -L/usr/local/mingw32/lib -logg -lvorbis -lvorbisenc -lvorbisfile -lsmpeg -lmingw32 -lSDL_gfx -lSDL_mixer -lSDLmain -lSDL -mwindows -mno-cygwin

これでWindows用の実行ファイルが作れるはず。
SDLで作成したコードは、それぞれのプラットホームのSDL開発環境があればmakefileを書き直すだけで実行ファイルが作れます。

  • ソースファイルへのリンク
がんなつポータブル
GP2X版ですが、上記の環境とmakefileを書き直せばWindowsでの実行ファイルが作成できます。
DashBoader
SDLで作られたWindows用ゲームです。ソースコードも配布していただいてるので参考になると思います。