toge's diary

コンピュータ関連の趣味をつらつらと。

MinGW上でコンパイル

sikataさんの情報どおりにすんなりMinGW, MSYS, MSYS DTKと入れられた。
ただしひとつだけ注意点が。
なんかMSYSのpost-install中に「makeがないぞ」と怒られたので面倒だからMinGWインストール直後に"mingw32-make.exe"を"make.exe"に改名した上でインストールした。

つぎにSDL周りのインストール。
以下のページからバイナリ持ってきて、MSYSの/で展開するだけ。ちとバイナリが古いけれどまあ、問題ないでしょう。

http://cefiro.homelinux.org/topics/SDL/setup-win32-mingw-2.0.html

なんかSDL_image.hだけ/usr/includeに入ってしまうので/usr/local/includeにコピー。

次にglewを使っているのでコンパイル。
恐ろしいことに展開してmakeするだけで動く。そういえばCygwinでも昔あっさりインストールできたような。
すばらしいね。

その後は自分の書いたコードの微妙なミスをごにゅごにゅと直す。
以下備忘録。

  • xmmintrin.hはなぜかヘッダ内でエラーになり使えなかった。
  • OpenGL周りはLinuxと違うので注意。LinuxだとlibGL.aだけど、MinGWではlibopengl32.a。
  • 多分上の変更に合わせる趣旨でlibGLEW.aもlibglew32.aに変わってる。
  • テンプレートの特化版を.cppに置くとリンクエラーになる。(私が悪いだけ?)

まあ、なんとか足掛け3時間の苦難の道を経てやっとこさコンパイルできました。

さて、実行・・・。ぐはっ、なんかlibpngが読み込みに失敗してる・・・。

調査しないと・・・。

なんにせよGLEWのmakefileがかなりいい出来なのがわかりました。
勉強させてもらおうと思います。

しかしMinGWでのビルドは恐ろしいぐらいに遅いね。自分のPCに比べると3-4倍ぐらい遅い感じがする。gccのコンパイル速度以前にmake時点の更新確認が遅いみたい。