Xamarin.Androidにてopencvを利用したアプリを開発しています。
ソリューションは下記のプロジェクトで構成されています。
Xamarin.Android(C#のAndroidプロジェクト)
SharedLibraryA(c++ダイナミックライブラリ)
StaticLibraryB(c++スタティックライブラリ)
Xamarin.AndroidからSharedLibraryの関数を呼び出すように実装しています。
SharedLibraryAからはStaticLibraryBを参照しています。
StaticLibraryBの中では下記よりダウンロードしてきたopencvのスタティックライブラリ(*.a)を参照しています。
opencvのコードを参照せずに、アプリをデバッグすると問題なく動作することは確認できているのですが、
StaticLibraryB内にopencvのインスタンスを生成するような処理(cv::Mat mat)を記述すると、StatichLibraryBのビルドはエラーなく実行できるのですが、SharedLibraryAをビルド時に下記のエラーが表示されます。
undefined reference to 'cv::fastFree(void*)
undefined reference to 'cv::Mat::deallocate()
undefined reference to 'cv::String::deallocate()
SharedLibraryAの[構成プロパティ]->[リンカー]->[コマンドライン]の追加のオプションにて
下記記述をし、opencvのスタティックライブラリは参照しています。
-Wl,-z,relro "C:\Users\yuuta\source\repos\TestApp1\OpenCV-android-sdk\sdk\native\libs\x86\libopencv_core.a" -Wl,-z,relro "C:\Users\yuuta\source\repos\TestApp1\OpenCV-android-sdk\sdk\native\libs\x86\libopencv_imgproc.a" -Wl,-z,relro "C:\Users\yuuta\source\repos\TestApp1\OpenCV-android-sdk\sdk\native\libs\x86\libopencv_highgui.a" -Wl,-z,relro "C:\Users\yuuta\source\repos\TestApp1\OpenCV-android-sdk\sdk\native\libs\x86\libopencv_objdetect.a"
何が原因と考えられますでしょうか?
原因がわからず数時間悩んでおります。
よろしくお願いいたします。
あなたの回答
tips
プレビュー