2015-11-05 3 views
0

У меня возникают проблемы при создании OpenCV и FastCV в качестве статических библиотек. Вот мой Android.mk:Build Android OpenCV и FastCV

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

OPENCV_CAMERA_MODULES:=on 
OPENCV_INSTALL_MODULES:=on 

include /Users/Razvan/Android/OpenCV-2.4.10-android-sdk/sdk/native/jni/OpenCV.mk 

USE_OPENGL_ES_1_1 := false 

ifeq ($(USE_OPENGL_ES_1_1), true) 
    OPENGLES_LIB := -lGLESv1_CM 
    OPENGLES_DEF := -DUSE_OPENGL_ES_1_1 
else 
    OPENGLES_LIB := -lGLESv2 
    OPENGLES_DEF := -DUSE_OPENGL_ES_2_0 

endif 


LOCAL_MODULE := drive_assist 
LOCAL_SRC_FILES += jni_part.cpp GridTracking.cpp CameraRendererRGB565GL2.cpp FastCVSampleRenderer.cpp CameraUtil.cpp 
LOCAL_LDLIBS += -llog -ldl $(OPENGLES_LIB) -lfastcv 
LOCAL_CFLAGS += -Wno-write-strings $(OPENGLES_DEF) -ffast-math -O3 -fopenmp -funroll-loops 
LOCAL_LDFLAGS +=-O3 -fopenmp 


LOCAL_CPPFLAGS := -O3 -flto -ffunction-sections -fdata-sections 
LOCAL_CPPFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden 
LOCAL_CPPFLAGS += -fomit-frame-pointer -funroll-loops -ffast-math 
LOCAL_CPPFLAGS += -mfloat-abi=softfp -DFPM_ARM -DNDEBUG 
LOCAL_STATIC_LIBRARIES += libfastcv 
LOCAL_SHARED_LIBRARIES := liblog libGLESv2 

include $(BUILD_SHARED_LIBRARY) 

Я получаю странные неопределенные эталонные ошибки в родной библиотеке OpenCV, например:

/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:353: error: undefined reference to 'cv::Mat::create(int, int const*, int)' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:278: error: undefined reference to 'cv::fastFree(void*)' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:278: error: undefined reference to 'cv::fastFree(void*)' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:278: error: undefined reference to 'cv::fastFree(void*)' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:367: error: undefined reference to 'cv::Mat::deallocate()' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:367: error: undefined reference to 'cv::Mat::deallocate()' 
/Users/Razvan/Android/OpenCV-2.4.11-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:367: error: undefined reference to 'cv::Mat::deallocate()' 

Самое странное в том, что если я удалить FastCV материал, OpenCV будет компилировать и работать отлично. Я не хочу использовать динамическую компоновку и менеджер OpenCV. У кого-нибудь есть предложения по моей проблеме?

Спасибо!

ответ

0

решен путем изменения общего Android.mk в LIBS следующим образом:

LOCAL_SHARED_LIBRARIES += lopencv_java liblog libGLESv2 
Смежные вопросы