phonondrive

2007.02.21

+ Ruby :: Cygwin でクロスコンパイルに挑戦したものの・・・

Ruby/OpenCV の cygwin 上でのコンパイルは成功したので、cygwin1.dll や cygruby18.dll 不要の opencv.so を作りたいのですが、なかなかうまくいきません。

Makefile 中のフラグに -mno-cygwin を設定してみたり、cygwin 用の mingw32 な Ruby をインストールしてみたりと、いろいろいじってなんとか cygwin 依存をなくそうとしましたが、一部の cygruby18.dll 依存が消えてくれません。

cygruby18.dll が消えない〜

誰か Ruby/OpenCV を Win32 用にクロスコンパイルしてくれないかしら。

(続き)

+ MUSIC :: Sugarless GiRL, capsule

買った。ストラップ付いてた。

「買い」 かと言われるとちと微妙。先行アナログから曲数が増えた印象なかったし、ジャケは素材集モノ (imagenavi.jp)だしね。でも Sugarless GiRL (M02) はいい。

Sugarless GiRL, capsule

+ Ruby :: SDL :: Ruby/OpenCV クロスコンパイル (cygwin → mingw32) 通った!

やっぱり諦めきれずに 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 も構造体の中身というかメンバーは一緒なんだけど、さすがに = で代入は出来ないよな。なんか共通に扱えるような良い方法あるのかなぁ。

お名前:
空欄:
コメント:

最新 | TOP に戻る

· affiliates
Ads by Google AdSense Associated with Amazon.co.jp Powered by Amagle AltADs Affiliated by VALUE DOMAIN
· hosting servers
XREA ismusic networks

Subscribe with livedoor Reader



FRUITS CLiPPER, capsule SSugarless GiRL, capsule THE IDOLM@STER MASTER ARTIST 07 三浦あずさ NEXUS-2060, capsule