crossdevでDirectXのコンパイル

DirectXの開発環境を作るべく作業を継続。
まず、DirectX SDKをインストールした。
ダウンロードしてきてWine上でインストーラを実行。
問題なかった。

さっそく適当なDirectXのソースをコンパイルしてみた。

CXXFLAGS=-IDirectX/include -I/usr/include/wine/windows
LDFLAGS=-LDirectX/lib

$ CC=i686-mingw32-gcc CXX=i686-mingw32-g++ make

ビルドは成功。
実行してみたところ
libgcc_s_sjlj-1.dll
が見つからないというエラーが発生した。
locateで探したら
/usr/i686-pc-linux-gnu/i686-mingw32/gcc-bin/4.4.0/libgcc_s_sjlj-1.dll
にあった。
exeと同じディレクトリにコピーしたところwineでは動いた。
でも、windowsにもってくと
アプリケーションを正しく初期化できませんでした。0xc0000022
というエラーが発生。
なんとかしたいところだが、
最終的にはvcでコンパイルするという手もあるので
とりあえずLinux上で開発できるようになった。

解決

http://cgi.netlaputa.ne.jp/~kose/diary/?0301
で言及されていたdllに実行権限が無いという状態がまさにそれだった。
cygwinのscpでwindowsにコピーしたときにパーミッションが644になってた。
755にすべく

chmod +x libgcc_s_sjlj-1.dll

としたら無事動作。