[英]Using stl_tree.h on Android NDK results in “No such file or directory”
我正在將本機庫移植到NDK應用程序。
當我嘗試使用stl_tree.h #include時,出現以下錯誤。
error: stl_tree.h: No such file or directory
這是我的Android.mk文件。
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)
這是我的Application.mk
APP_MODULES := adept cryptopenssl curl dp expat fonts hobbes jpeg mschema png t3 xml zlib rmsdk
APP_STL := stlport_static
我的實際問題是,在編譯時得到:'_Rb_tree_increment'不是'std'的成員。這就是為什么我嘗試自己包含stl_tree的原因。 看來這個lib沒有被包含在內。
我只能說C ++,不能代表android,但是為什么要嘗試直接包含stl_tree.h
? 您應該包括<map>
或<set>
以獲得要使用的實際容器。 無論如何,在g ++中, stl_tree.h
只是map
和set
使用的私有實現。
我使用NDK 5的stlport解決了它。
Android NDK沒有STL(或者至少不是我上次查看Froyo上的SDK的時候)。
它沒有STL的原因是默認情況下,所有內容都在禁用異常的情況下進行編譯。 因此,在使用第三方STL端口時要非常小心。 如果發生任何錯誤,很有可能會崩潰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.