ある事ない事書きなぐり

適当にやっています。

SDLの開発環境作成方法

最近SDLを使って作成していますが、SDLを使っている事をマニュアルに書きわすれていました。
SDLの開発環境の作成方法を書いておきますので、改造してみたい、という人は試してみてください。


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


2.SDLのインストール
SDLコンパイルするためには、CygwinSDLのパッケージを入れる必要があります。
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を書き直すだけで実行ファイルが作れます。