2017-03-05 12 views
1

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()'

ここで、carotenelibtegra_hal.aの関数です。 opencvライブラリとサードパーティのライブラリをリンクする方法はありますか?

ありがとうございました。

編集:私は正常にコンパイルし、OpenCVの3.1.0ライブラリを実行することができます

はなく、3.2.0のライブラリ。

+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

+0

ありがとう、それをチェックアウトします。問題は、OpenCV 3.2.0固有です – FadedCoder

答えて

0

回避策:OpenCV 3.1.0以前を使用するか、またはCAROTENEを無効にしてOpenCV 3.2.0をコンパイルします。

私は現在、他の解決策を見つけることができません。

関連する問題