无法在 Qt 中 link OpenCV Android
Cannot link OpenCV Android inside Qt
我尝试在 Qt 中将 OpenCV 与 Android 一起使用,但我无法在 Qt 中成功 link 它,我得到了一些未定义的辅助库引用错误(如 libjpeg,libtegra_hal ETC。)。我使用 this SO answer 作为参考指南。
这是我的 .pro 文件 -
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
}
我正在使用 Qt 5.8 和 OpenCV 3.2.0。错误采用这种格式 -
libopencv_core.a:...错误:对(第 3 方库之一的方法)的未定义引用
这是一个例子 -
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
的函数。有什么方法可以 link opencv 库与第 3 方库吗?
谢谢。
编辑:
我可以成功编译和 运行 OpenCV 3.1.0 库,但不能编译 3.2.0 库。
解决方法是:使用 OpenCV 3.1.0 或更早版本,或者编译禁用 CAROTENE 的 OpenCV 3.2.0。
我现在似乎找不到任何其他解决方案。
我尝试在 Qt 中将 OpenCV 与 Android 一起使用,但我无法在 Qt 中成功 link 它,我得到了一些未定义的辅助库引用错误(如 libjpeg,libtegra_hal ETC。)。我使用 this SO answer 作为参考指南。
这是我的 .pro 文件 -
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
}
我正在使用 Qt 5.8 和 OpenCV 3.2.0。错误采用这种格式 -
libopencv_core.a:...错误:对(第 3 方库之一的方法)的未定义引用
这是一个例子 -
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
的函数。有什么方法可以 link opencv 库与第 3 方库吗?
谢谢。
编辑:
我可以成功编译和 运行 OpenCV 3.1.0 库,但不能编译 3.2.0 库。
解决方法是:使用 OpenCV 3.1.0 或更早版本,或者编译禁用 CAROTENE 的 OpenCV 3.2.0。
我现在似乎找不到任何其他解决方案。