2014-06-11 3 views
0

나는 안드로이드 NDK 함께 일하고 내 프로젝트를 빌드 할 때이 오류가있어 : 내가 추가 한 Application.mk에서정의되지 않은 참조

error: undefined reference to 'std::basic_string<char, std::char_traits<char>,   std::allocator<char> >::_Rep::_M_destroy(std::allocator<char> const&)' 
/home/khoa/ndk/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/khoa/Khoa/OpenCV-2.4.9-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(mathfuncs.cpp.o): in function cv::magnitude(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&):mathfuncs.cpp(.text._ZN2cv9magnitudeERKNS_11_InputArrayES2_RKNS_12_OutputArrayE+0x278): error: undefined reference to 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_destroy(std::allocator<char> const&)' 
/home/khoa/ndk/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: /home/khoa/Khoa/OpenCV-2.4.9-android-sdk/sdk/native/jni/../libs/armeabi-v7a/libopencv_core.a(mathfuncs.cpp.o): in function cv::magnitude(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&):mathfuncs.cpp(.text._ZN2cv9magnitudeERKNS_11_InputArrayES2_RKNS_12_OutputArrayE+0x2aa): error: undefined reference to 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_M_destroy(std::allocator<char> const&)' 

을 :

APP_STL := gnustl_static 
APP_STL := -lsupc++ 
APP_STL := stlport_static 
APP_CPPFLAGS := -frtti -fexceptions 
APP_ABI := armeabi-v7a 
APP_PLATFORM := android-8 

이것은 내 Android.mk :

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
OPENCV_LIB_TYPE:=STATIC 
OPENCV_INSTALL_MODULES:=on 
OPENCV_CAMERA_MODULES:=off 
include /home/khoa/Khoa/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk 
LOCAL_C_INCLUDES += ${NDKROOT}/sources/cxx-stl/stlport/stlport 
LOCAL_MODULE := csp 
LOCAL_SRC_FILES := csp.cpp 
LOCAL_LDLIBS += -llog -ldl 
include $(BUILD_SHARED_LIBRARY) 

이 문제를 어떻게 해결할 수 있습니까?

+0

** APP_STL ** 단 한번만 선택하십시오. ** gnustl_static **에 투표합니다. 'Android.mk'를 보여주세요. –

+0

@Alex Cohn : 어떻게 해결할 수 있습니까? – user3693423

답변

1

다른 도구 체인으로 libopencv_core.a을 다시 작성하지 않는 한 gnustl_static을 사용해야합니다.

Application.mk

APP_STL := gnustl_static 
APP_CPPFLAGS := -frtti -fexceptions 
APP_ABI := armeabi-v7a 
APP_PLATFORM := android-9 

Android.mk

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
OPENCV_LIB_TYPE:=STATIC 
OPENCV_INSTALL_MODULES:=on 
OPENCV_CAMERA_MODULES:=off 
include /home/khoa/Khoa/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk 
LOCAL_MODULE := csp 
LOCAL_SRC_FILES := csp.cpp 
LOCAL_LDLIBS += -llog -ldl 
include $(BUILD_SHARED_LIBRARY) 

은 자세한 내용과 당신의 환경을 설정하는 데 도움 실제 스크린 샷의 opecv documents를 참조하십시오.

명확하지 않은 내용이나이 변경으로 모든 빌드 문제가 해결되지 않는 경우 자세한 정보를 요청하십시오. 문제가있는 경우 ndk-build V=1으로 만든 빌드 로그를 게시하십시오.