안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요? 제가 코어 부분은 C++코드로 작성해 달라는 요청을 받고 작업을 하고 있습니다.
그런데 ndk를 처음 사용하다 보니 많이 헤메기도 하고... 겨우 이해해서 C++코드를 먼저 작성한 다음
빌드를 해 보니
.h:3:20: error: string: No such file or directory
.h:5: error: 'std::string' has not been declared
등등... std::string을 인지하지 못해서 수 많은 에러를 뿜어 내더군요.
제가 작성한 Android.mk파일은 다음과 같습니다.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := clibs
LOCAL_SRC_FILES := sqlite3.c
LOCAL_LDLIBS := -llog
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_DEFAULT_CPP_EXTENSION := cpp
LOCAL_MODULE := mytweetlib
LOCAL_STATIC_LIBRARIES := clibs
LOCAL_SRC_FILES := Friend.cpp SQLiteDB.cpp Cursor.cpp DB4Friends.cpp ResultParser.cpp MyTweet.cpp Stub.cpp
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := clibs
LOCAL_SRC_FILES := sqlite3.c
LOCAL_LDLIBS := -llog
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_DEFAULT_CPP_EXTENSION := cpp
LOCAL_MODULE := mytweetlib
LOCAL_STATIC_LIBRARIES := clibs
LOCAL_SRC_FILES := Friend.cpp SQLiteDB.cpp Cursor.cpp DB4Friends.cpp ResultParser.cpp MyTweet.cpp Stub.cpp
include $(BUILD_SHARED_LIBRARY)
C로 작성된 파일을 정적 라이브러리로 만들어서 링크 하려고 했었는데, 당최 뭐가 문제인지 이틀동안 온갖 사이트를 뒤졌음에도
단서조차 찾지 못했네요.
혹시 이와 관련해서 알고 있는게 있으신 분 없으신가요? 작은 단서라도 좋으니 부탁 드립니다.
이전에 Application.mk파일에 stlport 값을 static으로 지정하면 된다고 하시기에
Android.mk파일이 있는 경로에 Application.mk파일을 만들고 내용에
APP_STL := stlport_static




LOCAL_LDLIBS := -llog -lstlport
하고 단말내에 존재하는 stlport 을
$(NDK_PATH)\platforms\$android-$(SDK_NUMBER)\arch-arm\usr\lib
에 복사 합니다.
http://android.git.kernel.org/?p=platform/external/stlport.git;a=summary
git 에서 stlport 를 다운 받고 해당 경로를 mk 파일 내에 설정 합니다.