win7 (32b) の QT5.2.0 ベータ 1 を、ネイティブ C++ 開発のために opencv および android と統合しようとしています。残念ながら成功できませんでした。(さらに必要なものも試してみましたが、うまくいきませんでした。) アプリケーションはデスクトップで動作しますが、Android キット (x86 または arm7s) 用にコンパイルしようとすると、ビルド中に「lopencv_highgui.a」に関連するエラーが発生します。
"C:/OpenCV-2.4.6-android-sdk/sdk/native/libs/armeabi-v7a/libopencv_highgui.a(grfmt_exr.cpp.o): 関数cv::ExrDecoder::ExrDecoder()':grfmt_exr.cpp:(.text._ZN2cv10ExrDecoderC2Ev+0x82): undefined reference to
内 Imf::Chromaticities::Chromaticities(Imath::Vec2 const& , Imath::Vec2 const&, Imath::Vec2 const&, Imath::Vec2 const&)'"
いくつかのNDK(r8b、r8e、r9)バージョンで明確なセットアップを使用しました
- "C:\adt-bundle-windows-x86-20130917" (マネージ API 16、17、18)
- 「C:\apache-ant-1.9.2\bin\ant.bat」
- "C:\Program Files (x86)\Java\jdk1.7.0_45" (システム環境変数に JAVA_HOME を設定)
- "C:\OpenCV-2.4.6-android-sdk" & ""C:\OpenCV-2.4.6"
- "C:\Qt\Qt5.2.0\5.2.0-beta1\mingw48_32" (sys.env.vars の QTDIR)
私は次の解決策を試しました
- 定義どおりにproファイルのopencvライブラリを並べ替えました。
- sh.exeの存在を確認しました(存在しません)
- tools.jar を jdk から「C:\Program Files (x86)\Java\jre7\lib」フォルダにコピーしました
NEXUS S 4.2.2 x86 (API17) & Galaxy Nexus 4.1.1 x86 (API16) を搭載した仮想 Android 環境に Genymotion を使用しました。
Qt の例をエミュレーター (OpenGL なし、opencv なし) でコンパイル、デプロイ、実行できますが、単純な opencv アプリケーションでは成功しませんでした。(PS: アプリケーションはデスクトップで動作しています)
適切なソリューションを見つけてエラーを定義するには、正しいプロ、ユーザー、およびその他の構成を備えた単純な実行中の Qt opencv android の例が必要だと思います。
作業サンプルを共有できる人はいますか?