2011-01-07 2 views
0

NDK 응용 프로그램에 기본 라이브러리를 이식 ​​중입니다.Android NDK에서 stl_tree.h를 사용하면 "No such file or directory"가 표시됩니다.

stl_tree.h #include를 사용하려고하면 다음 오류가 발생합니다.

error: stl_tree.h: No such file or directory 

이것은 내 Android.mk 파일입니다. '_Rb_tree_increment' '표준' 의 구성원이 아닌 내가하려고하는 이유는 다음과 같습니다

LOCAL_PATH := $(call my-dir) 
MY_PATH := $(LOCAL_PATH) 
include $(call all-subdir-makefiles) 
LOCAL_PATH := $(MY_PATH) 
include $(CLEAR_VARS) 
LOCAL_LDLIBS := -llog -la -lb -lc -lstdc++ -lgcC#I try to explicit declare the stdc++ and gcc but still doesn't works. 
LOCAL_MODULE := rmsdk 
LOCAL_SRC_FILES := curlnetprovider.cpp RMServices.cpp 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include-all \ 
$(LOCAL_PATH)/include-all/openssl 
LOCAL_STATIC_LIBRARIES := adept cryptopenssl curl dp expat fonts hobbes jpeg mschema png t3 xml zlib 

include $(BUILD_SHARED_LIBRARY) 

는 그리고 이것은 내가 얻을 컴파일 할 때

APP_MODULES := adept cryptopenssl curl dp expat fonts hobbes jpeg mschema png t3 xml zlib rmsdk 
APP_STL := stlport_static 

내 실제 문제는, 내 Application.mk입니다 직접 stl_tree를 포함하십시오. 이 라이브러리는 포함되지 않습니다.

답변

0

나는 NDK (5)로부터 된 STLport를 사용하여 해결

1

저는 C++, Android 용이 아닙니다.하지만 stl_tree.h을 직접 포함하려고하는 이유는 무엇입니까? 사용할 실제 컨테이너를 얻으려면 <map> 또는 <set>을 포함해야합니다. g ++에서 어쨌든 stl_tree.hmapset에 의해 사용되는 단지 개인 구현입니다.

+0

사실, 나는 왜 내 응용 프로그램이 컴파일되고 있는지 알아 내려고하고 있습니다. 문제는 _Rb_tree_increment에 있었고 stl_tree.h 파일에서 문제가 발견되었으므로이를 포함시킵니다. 그러나 도 컴파일 할 때 "_Rb_tree_increment '가'std '의 멤버가 아닙니다." 타이. –

0

안드로이드 NDK는 (또는 적어도, 그것은 프로 요에 있던 나는 SDK 보았다 마지막으로,하지 않았다)를 STL이 없습니다 .

STL이없는 이유는 기본적으로 모든 것이 예외를 사용하지 않고 컴파일된다는 것입니다. 타사 STL 포트를 사용할 때는 매우 신중해야합니다. 어떤 일이 잘못되면 추락 할 가능성이 있습니다.

+0

NDK5는 stlport 및 gnustl_static을 제공합니다. –

관련 문제