Ubuntu9.04 + Mono2.4 で動作確認

多大なる苦労の末、ようやく動きました。

動かすまでの手順をものすごく大雑把に書けば、以下のようになります。

  1. MonoやOpenCVをインストール
  2. OpenCvSharpExtern.dllはWindowsバイナリなので、LinuxバイナリであるlibOpenCvSharpExtern.soをつくる
  3. libcv.so.2.0.0 等のOpenCVのライブラリファイルを /usr/local/lib 辺りからコピーしてきて、libcv110.so のように名前変更
  4. libOpenCvSharpExtern.so や libcv110.so 等のライブラリを全て実行ファイルと同じディレクトリに置いた状態で、起動


C#については、Monoと.NET Frameworkの間でバイナリ互換があるのでほぼまったく問題ありません。問題はC++で書かれた部分です。だいぶ減らしたとはいえ0にするのは難しく、そこだけはLinuxで動かすときにそれ専用にコンパイルしなければなりません。

MLとcvblobについてはC++で書かれておりDllImportは厳しいのでやむを得ませんが、コア部分については純粋にC#で実装したいところです。


また、Linux版は配布しようにも、Linuxって各ディストリビューション間でどこまでバイナリ互換があるのかよくわかりませんし、やはり使う人が自分でコンパイルして下さい、という方向になりそうです。

Monoプログラミング .NET/C#とMono for AndroidによるAndroidアプリケーション開発

Monoプログラミング .NET/C#とMono for AndroidによるAndroidアプリケーション開発