2014-12-17 2 views
1

Qt Creator에서 빌드 한 Qt Android 프로젝트에서 OpenCV를 사용하려고합니다.Qt Android 프로젝트에서 OpenCV를 사용할 때 링크 주문

사전 제작 된 OpenCV-2.4.10-android-sdk을 사용하며 크기에 따라 정적 라이브러리에 연결됩니다. 지금은 링커 오류가 발생하고 GCC의 링크 순서가 중요하기 때문에 링크 순서가 잘못 되었기 때문에 링크 순서가 잘못되었다고 생각합니다 (libs는 알파벳 순서 임).

그래서 올바른 링크 순서는 무엇이며, 어떻게 Windows에서 크로스 컴파일 해요 점을 고려, 내가 그것을 찾을 수 있습니까?

이 내 .PRO 파일입니다 :

LIBS += -L"c:/Workspace/OpenCV-2.4.10-android-sdk/sdk/native/libs/armeabi-v7a"\ 
     -L"c:/Workspace/OpenCV-2.4.10-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a" 
LIBS += \ 
    -lopencv_core\ 
    -lopencv_features2d\ 
    -lopencv_flann\ 
    -lopencv_highgui\ 
    -lopencv_imgproc\ 
    -lopencv_legacy\ 
    -lopencv_ml\ 
    -lopencv_objdetect\ 
    -lopencv_ocl\ 
    -lopencv_photo\ 
    -lopencv_stitching\ 
    -lopencv_superres\ 
    -lopencv_ts\ 
    -lopencv_video\ 
    -lopencv_videostab\ 
    -lIlmImf\ 
    -llibjasper\ 
    -llibjpeg\ 
    -llibpng\ 
    -llibtiff\ 
    -ltbb 

그리고 이것은 내가 지금 받고있어 오류입니다 : 같은 문제가있을 수 있습니다 사람들을위한

c:/Workspace/OpenCV-2.4.10-android-sdk/sdk/native/libs/armeabi-v7a/libopencv_core.a(parallel.cpp.o):parallel.cpp:function tbb::interface6::internal::start_for<tbb::blocked_range<int>, (anonymous namespace)::ProxyLoopBody, tbb::auto_partitioner const>::~start_for(): error: undefined reference to 'vtable for tbb::task' 

답변

4

은, 이것이입니다 OpenCV의 올바른 순서. 내가 c:\Workspace\OpenCV-2.4.10-android-sdk\sdk\native\jni\OpenCVModules_armeabi_v7a.cmake에서 그것을 발견 :

foreach(_expectedTarget libtiff libjpeg libjasper libpng IlmImf tbb opencv_core opencv_androidcamera opencv_flann opencv_imgproc opencv_highgui opencv_features2d opencv_calib3d opencv_ml opencv_objdetect opencv_video opencv_contrib opencv_photo opencv_java opencv_legacy opencv_ocl opencv_stitching opencv_superres opencv_ts opencv_videostab) 

foreach에 주어진 순서대로 컴파일 할 때, 그들은했다. Windows에서 안드로이드 NDK가 아니라면 정확한 주문을 줄 수있는 도구를 찾을 수 없었습니다.

그래서 이것은 LIBS 항목이 보일 것입니다 방법입니다

LIBS += -L"c:/Workspace/OpenCV-2.4.10-android-sdk/sdk/native/libs/armeabi-v7a"\ 
     -L"c:/Workspace/OpenCV-2.4.10-android-sdk/sdk/native/3rdparty/libs/armeabi-v7a" 
LIBS += \ 
    -llibtiff\ 
    -llibjpeg\ 
    -llibjasper\ 
    -llibpng\ 
    -lIlmImf\ 
    -ltbb\ 
    -lopencv_core\ 
    -lopencv_androidcamera\ 
    -lopencv_flann\ 
    -lopencv_imgproc\ 
    -lopencv_highgui\ 
    -lopencv_features2d\ 
    -lopencv_calib3d\ 
    -lopencv_ml\ 
    -lopencv_objdetect\ 
    -lopencv_video\ 
    -lopencv_contrib\ 
    -lopencv_photo\ 
    -lopencv_java\ 
    -lopencv_legacy\ 
    -lopencv_ocl\ 
    -lopencv_stitching\ 
    -lopencv_superres\ 
    -lopencv_ts\ 
    -lopencv_videostab 
관련 문제