【发布时间】:2017-07-25 07:28:37
【问题描述】:
我尝试在 Qt 中将 OpenCV 与 Android 一起使用,但我无法在 Qt 中成功链接它,我收到一些未定义的对侧库(如 libjpeg、libtegra_hal 等)的引用错误。我使用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 的函数。有什么方法可以将 opencv 库与 3rd 方库链接?
谢谢。
编辑:
我可以成功编译和运行 OpenCV 3.1.0 库,但不能成功编译和运行 3.2.0 库。
【问题讨论】:
-
我在谷歌上搜索了“未定义的对 'carotene_o4t::isSupportedConfiguration” 的引用,有一些命中 - 请参阅 stackoverflow.com/questions/41665655/…,它可能会给你一些指示。尝试按照3rd comment's 的建议禁用胡萝卜素。
-
谢谢,会检查的。问题是 OpenCV 3.2.0 特定的
标签: android c++ qt opencv opencv4android