2011-08-21 2 views
3

일부 코드에서 작업 중입니다. 프로그램의 핵심 부분에 대해 C++ 코드를 devlep하도록 요청 받았습니다. 하지만 처음으로 ndk를 사용하기 때문에 문제가 발생하여 해결되었습니다. 그러나 너무 어려운 문제가 내게 다가옵니다. 3 : 20 : 오류 : 문자열 : 해당 파일이나 디렉토리 .H : 5 : 오류 : '표준 : : 문자열'나는ndk 환경에서 C++ 코드를 빌드 할 때 문제가 발생했습니다.

.H, 그것은 말했다 , NDK 승/++ 코드를 내 C를 구축하지만했다

및 기타 오류가 있습니다. 아래는 내가 쓴 내 '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) 

내가 다른 파일/w 정적 라이브러리 파일하게 만들기 .c 파일 (sqlite3.c)을 연결하는 시도 (공유 라이브러리로 구축 할) . 누구든지이 사실을 알고 있습니까? 비록 그것이 아주 작은 단서 일지라도, plz는 저에게 그것을 제공합니다. (이 문제를 해결하지 못했습니다)

답변

7

stl 포트를 사용하는 것으로 NDK가 보이지 않는 것 같습니다.

APP_STL이 포함 된 Application.mk 파일을 추가해보십시오. 이렇게하면 stlport 헤더가 include 경로에 추가되고 라이브러리에 대한 링크가 추가됩니다.

APP_STL := stlport_static 
3

나는 Piklor 답을 더 추가하고 싶습니다. "Android.mk"파일과 "Application.mk"파일을 jni 폴더에 혼동하지 마십시오. 또한 include에는 string.h가 아닌 string.h가 포함되어야합니다.

관련 문제