Qt内でAndroidでOpenCVを使用しようとしましたが、Qtでうまくリンクできません。libjpeg、libtegra_halなどのサイドライブラリに未定義の参照エラーがあります。私は参考ガイドとしてthis SO answerを使用しました。Qt内でOpenCV Androidをリンクできません
これは私の.PROファイルである - 私はQtの5.8およびOpenCVの3.2.0を使用してい
INCLUDEPATH += "$$PWD/../../External-Libraries/opencv-android/sdk/native/jni/include"
android {
# 3rd party libs
LIBS += \
-L"$$PWD/../../External-Libraries/opencv-android/sdk/native/3rdparty/libs/armeabi-v7a"\
-llibtiff\
-llibjpeg\
-llibjasper\
-llibpng\
-llibwebp\
-lIlmImf\
-ltbb\
-ltegra_hal
# opencv libs
LIBS += -L"$$PWD/../../External-Libraries/opencv-android/sdk/native/libs/armeabi-v7a"\
-lopencv_core\
-lopencv_highgui\
-lopencv_java3\
-lopencv_calib3d\
-lopencv_imgcodecs\
-lopencv_imgproc\
-lopencv_flann\
-lopencv_features2d\
-lopencv_ml\
-lopencv_objdetect\
-lopencv_photo\
-lopencv_shape\
-lopencv_stitching\
-lopencv_superres\
-lopencv_video\
-lopencv_videoio\
-lopencv_videostab
ANDROID_PACKAGE_SOURCE_DIR=$$PWD/android
}
。エラーがこの形式である -
libopencv_core.a ...エラー:(サードパーティのLIBSのいずれかの方法)に未定義の参照
これは一例である -
libopencv_core.a(arithm.cpp.o):arithm.cpp:function cv::hal::cmp8u(unsigned char const*, unsigned int, unsigned char const*, unsigned int, unsigned char*, unsigned int, int, int, void*): error: undefined reference to 'carotene_o4t::isSupportedConfiguration()'
ここで、carotene
はlibtegra_hal.a
の関数です。 opencvライブラリとサードパーティのライブラリをリンクする方法はありますか?
ありがとうございました。
編集:私は正常にコンパイルし、OpenCVの3.1.0ライブラリを実行することができます
はなく、3.2.0のライブラリ。
私は "carotene_o4t :: isSupportedConfiguration"への未定義の参照をgoogled、いくつかのヒットがあります - 参照してくださいhttp://stackoverflow.com/questions/41665655/what-is-carotene-o4t-and-why-does-it-コンパイルの原因となる問題をプログラムで使用すると、いくつかの参考になるかもしれません。 [第3のコメントの]に従ってCaroteneを無効にしてみてください(http://stackoverflow.com/questions/41665655/what-is-carotene-o4t-and-why-does-it-cause-iss-with-compiling-a-program -using#comment70614446_41665655)アドバイス。 – sashoalm
ありがとう、それをチェックアウトします。問題は、OpenCV 3.2.0固有です – FadedCoder