相変わらず、こちらを参考にさせていただく。
まずはDirectX-develなパッケージをもってきてインストール。
http://www.libsdl.org/extras/win32/common/
インストールとはいっても、/usr/i586-~/include と 同lib/に、展開したパッケージのinclude/以下およびlib/以下をコピーするだけ。
これで、DirectX+SDLなプログラムを、Debian上でコンパイルすることが可能になる。
次に、SDLをとってくる。
SDLオフィシャルサイト
執筆時点では1.2.13が最新安定板だった。
ここで間違っちゃいけないのが、ソースコードをとってきたり、Linux向けdevelパッケージをとってこないこと。
(実はソースなら、Makefileをいじることで対応できなくはないが、めんどいので出来合いのものを使う。)
必要なのはDevelopment Libraries:のWin32項目にある、SDL-devel-1.2.13-mingw32.tar.gzというパッケージ。
なぜなら、コンパイルはLinux上でするけれど、動かすのはWindows上だから。
(VC用のパッケージは、ライブラリの形式が違うから使えないので、そちらも注意。)
ここからとってきたら、tarでSDL-devel-1.2.13-mingw32.tar.gzを展開する。
開くといろいろ出てくるけど、必要なのはinclude/以下のSDLディレクトリとその中に含まれるファイルと、lib/ディレクトリ以下のライブラリのみ。
これを、OpenGLの回よろしく、/usr/i586-~/include/ と /usr/i586-~/lib/ 以下にコピーする。
includeファイルに関しては、SDLディレクトリの中身をぶちまけないことがポイント。
ここまで出来たら準備はOK。
http://lazyfoo.net/SDL_tutorials/lesson02/index.php
のチュートリアルを参考に、テストコードを書く。
よくSDLのサイトで引き合いに出されるtestディレクトリ以下のテストコードは、変態環境においてはあまりあてにならないので注意。
コードが書けた(あるいはダウンロードしてきた)ら、それをコンパイルする。
コンパイルのためのコマンドは、(ここまででmingw-c++をMinGWのC++コンパイラに対するリンクとして定義しているはずなので)
$ mingw-c++ filename -lmingw32 -lSDLmain -lSDL -mwindowsを使う。
コンパイルオプションの指定順序を間違うと、WinMain16@が見つからねーよ!というエラーに遭遇するので注意。(ただし、-lSDLmain と -lSDLの順序は逆でもよさげ)
例によって、これを適当なスクリプトに落して、/home/username/binあたりに保存しておくと使いやすくなる。
これでコンパイルができたら、Windowsに出来上がったファイルをコピーする。
Windows上ではこのプログラムの実行にSDL.dllが必要なので、どこかから落としておくか、さっき落としてきたDevLibに含まれているものを、Windows上に送っておく。
うまくいけば、チュートリアルサイトで示されているような画面が、2秒間表示されるはず。
ここまでいけば、一応うまくいっているといえるんじゃないかと思う。
#追記:画像があったほうがわかりやすいかと思ったのでアップ。
うまくいくと、↓のような画面が2秒間表示されるハズ。
わー。うまくいった。ハッピーハッピー。
0 件のコメント:
コメントを投稿