JNI 를 활용하여 기존 만들어진 C++코드를 안드로이드 프로젝트에 넣는중인데
빌드 과정에서 이런 오류가 뜨네요.
C:/Android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs-debug/Make3DObject/com_IELab_project_make3dmodel_MainOperator.o: in function CSSensorModel::SetEOPara(double, double, double, double, double, double):jni/./Class_Sensor/SSensorModel.h:334: error: undefined reference to 'CFrmCamera::SetEOPara(double, double, double, double, double, double)'
C:/Android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs-debug/Make3DObject/com_IELab_project_make3dmodel_MainOperator.o: in function CSSensorModel::SetFrmCameraPara(double, double, int, int):jni/./Class_Sensor/SSensorModel.h:402: error: undefined reference to 'CFrmCamera::SetCameraPara(double, double, int, int)'
C:/Android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs-debug/Make3DObject/com_IELab_project_make3dmodel_MainOperator.o: in function MultiDimensionalMatching(int, std::vector<std::string, std::allocator<std::string> >*, std::vector<Point2DF, std::allocator<Point2DF> >*, std::vector<Point3DD, std::allocator<Point3DD> >*, std::vector<Point3DD, std::allocator<Point3DD> >*, std::basic_fstream<char, std::char_traits<char> >&):jni/com_IELab_project_make3dmodel_MainOperator.cpp:849: error: undefined reference to 'CSSensorModel::CSSensorModel(int)'
C:/Android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi-v7a/objs-debug/Make3DObject/com_IELab_project_make3dmodel_MainOperator.o: in function MultiDimensionalMatching(int, std::vector<std::string, std::allocator<std::string> >*, std::vector<Point2DF, std::allocator<Point2DF> >*, std::vector<Point3DD, std::allocator<Point3DD> >*, std::vector<Point3DD, std::allocator<Point3DD> >*, std::basic_fstream<char, std::char_traits<char> >&):jni/com_IELab_project_make3dmodel_MainOperator.cpp:849: error: undefined reference to 'CSSensorModel::CSSensorModel(int)'
위와같은 오류가 수십줄이 나오네요..ㅠㅠ
찾아보니 라이브러리가 링크가 안되었다는 말씀들이 많은데 혹시나 해서 mk파일도 같이 올려봅니다
<Android.mk>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_INSTALL_MODULES:=on
OPENCV_CAMERA_MODULES:=off
OPENCV_LIB_TYPE:=STATIC
include C:/Workspace_FM/OpenCV246/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := Make3DObject
LOCAL_SRC_FILES := com_IELab_project_make3dmodel_MainOperator.cpp 3DMapper.cpp GDALImage.cpp ImageResampler.cpp MatchCandidate.cpp MDR.cpp MultyMatching.cpp RelativeOrientation.cpp SIFTbyHess.cpp SingleOrientation.cpp stdafx.cpp TezDatum.cpp ./Library/SIFTHess_r1.1.2/imgfeatures.cpp ./Library/SIFTHess_r1.1.2/kdtree.cpp ./Library/SIFTHess_r1.1.2/minpq.cpp ./Library/SIFTHess_r1.1.2/sift.cpp ./Library/SIFTHess_r1.1.2/utils.cpp ./Library/SIFTHess_r1.1.2/xform.cpp
#LOCAL_LDLIBS += -lm -llog -landroid
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
<Application.mk>
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions -fpermissive -Wformat -Wwrite-strings
APP_ABI := armeabi-v7a
APP_PLATFORM := android-16
APP_OPTIM := debug
APP_CFLAG := -g -ggdb -O0
여러가지 에러를 해결하는중 여기서 해결을 못하겠네요 ㅠㅠ 조언 부탁드립니다.