Ruby/OpenCV の cygwin 上でのコンパイルは成功したので、cygwin1.dll や cygruby18.dll 不要の opencv.so を作りたいのですが、なかなかうまくいきません。
Makefile 中のフラグに -mno-cygwin を設定してみたり、cygwin 用の mingw32 な Ruby をインストールしてみたりと、いろいろいじってなんとか cygwin 依存をなくそうとしましたが、一部の cygruby18.dll 依存が消えてくれません。

誰か Ruby/OpenCV を Win32 用にクロスコンパイルしてくれないかしら。
(続き)
買った。ストラップ付いてた。
「買い」 かと言われるとちと微妙。先行アナログから曲数が増えた印象なかったし、ジャケは素材集モノ (imagenavi.jp)だしね。でも Sugarless GiRL (M02) はいい。

やっぱり諦めきれずに Makefile を見直すも、これ以上 cygwin Ruby を呼んでるとこないだろうと途方にくれる。このままだと 「ちょっとクロスコンパイル言ってみたかっただけじゃないの」 とみんなの失笑を買ってしまう。ふと gcc に --verbose オプションつけるといろんなことがわかるよという言葉を思い出して、再度 make した結果を眺めていると・・・ぁゃιぃ。-lruby が、ぁゃιぃ。
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
RUBY_SO_NAME = ruby
となってて気が付かなかったヨ。ここを
LIBRUBYARG_SHARED = -lmsvcrt-ruby18
LIBRUBYARG_STATIC = -lmsvcrt-ruby18-static
と書き換えてやったら、cygwin free な opencv.so が出来た!もちろん mswin32 Ruby でちゃんと読み込めた。
ただこの opencv.so、ffcall がクロスコンパイルの足をひっぱると原因の切り分けが難しくなるので、とりあえず callback (OpenCV::GUI) まわりをひたすらコメントアウトしておいた不完全版。今度は完全版に挑戦しなきゃね。
でも OpenCV::GUI なくても Ruby/SDL に乗せればいいやと思って、ここで webcam からの画像を SDL で表示させようとして問題発生。Ruby/OpenCV には OpenCV の画像形式 (Intel Image Processing Library 形式: IplImage) から DIB 形式に変換する iplConvertToDIB 関数が実装されてないのでした。 (2007.2.22 訂正) iplConvertToDIB 関数は IPL (Intel Image Processing Library) ライブラリの関数であり、OpenCV ライブラリとは別のモノでした。
そいや、camellia のデータ構造 (CamImage) は IPL ベース (camellia.sourceforge.net) らしいなぁ。そこから攻めればうまくいくかな?CamImage も IplImage も構造体の中身というかメンバーは一緒なんだけど、さすがに = で代入は出来ないよな。なんか共通に扱えるような良い方法あるのかなぁ。