昨日のアイレムは凄かったですね.凝りすぎて逆につまらないかと思ったら,ウサギで吹いたw
■Eclipse + CDT + MinGWでSDLをコンパイルするメモ
EclipseのC/C++用プラグイン,CDTとWin用GCCのMinGWを使ってSDLプログラムをコムパイルするメモメモです.なんだか今日はノリノリです.
とりあえずまずは,C-Compiler Wikiを参考にHelloWorldを表示するプログラムは作れるようになっておいてください.
■SDLを導入しておく
ダウンロードページより,MinGW用SDL開発ライブラリを手に入れておきます.ファイル名は今のところは「SDL-devel-1.2.9-mingw32.tar.gz」です.
解凍した後,中身をどこか適当な場所にぶち込んでおきます.ライブラリ用のフォルダを作って,そこに今後はいろいろなライブラリをぶち込んでおくとすると楽です.
なお,実行するにはSDL.dllをパスの通っているところにおく必要があります.パスを増やしすぎるとなんか認識しなくなるっぽいので,あんまり増やしたくない人はsystem32あたりに入れておいてください.
なお,大多数のデモはSDL/SDL.hをincludeするので,include中身をすべて,include\SDLにコピーすると楽かもしれません.
■OpenGLもどうせなので
3DならOpenGlっすよね,ということで,OpenGLも導入しちゃいました.OpenGL自体はMinGWに入っているのですが,GLUTという追加ライブラリは入っていないので導入します.Windows用はこちらよりglut-3.7.6-bin.zipを落としてください.解凍したあと,「glut32.dll」はc:\WINDOWS\system32に,「glut.h」はMinGWのindlude\GLにぶち込んでおいてください.
これでうまくいくはずですが,テストはしてないので間違ってるかもしれません(ぁ.
■Eclipseの設定
Makefileの書式をお勉強するのが面倒なのでManagedBuildを使って,とりあえず適当に書いたソースに
#include
を付加し,これでテストしてみます.
libmingw32.a(main.o)(.text+0x106):main.c: undefined reference to `WinMain@16'
とか出てきたんで調査,調査.
結果,以下のようにすればいいっぽいです.
- プロパティのビルド構成のCコンパイラの「ディレクトリ」でIncludeパスに”<SDLのインストール先>\include”を指定
- 同じくCリンカの「ライブラリー」ところの「ライブラリー(-l)」に,「mingw32」「SDLmain」「SDL」を上から順に指定.順番が違うとダメっぽい.
- ライブラリ検索パスに”<SDLのインストール先>\lib”を指定.
これでコンパイル出来るんじゃないんですかね.
で,ところでprintfが使えなくなったんだけど,仕様的にこれで正しいの?(ぉ
まあ,今後,SDL+CかDでゲームでも作ってみたいなぁと.Javaに比べ爆速であると期待・・・.あ,なおJava用SDLもありますので,ぜひお試し下さい.あ,そっちからやろうかな,まずはSDLに慣れるってことで.
■自力でコンパイルする方法も発見
ソースからコンパイルする方法もありました.参考までに.つーか,こっちの方が良いな.今から切り替えてくる.なお,CDTについても少し設定が変わるのでご紹介.
MinGW用SDL_mixerのバイナリは自力でコンパイルするしかないので,この方がいいかもですよ,うん.
■MSYSで自分でコンパイルする際のCDT設定
上のサイトの通りにコンパイルしてください.なお,上のファイルの通りにしてlocal\binにインストールしちゃった人は,パスを通してください.私はしちゃいました.コンパイルしなおそうかな.CDTの設定は,次の通りです.
・コンパイラーの「その他」→「その他のフラグ」で「`sdl-config –cflags`」を追加.
・リンカーの「その他」→「リンカーフラグ」で「`sdl-config –cflags`」を追加.
ツールが自動で設定を吐いてくれるので,ずいぶんと楽にはなってますね.これで安心だ.