簡體   English   中英

在Android NDK上使用stl_tree.h會導致“沒有此類文件或目錄”

[英]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只是mapset使用的私有實現。

我使用NDK 5的stlport解決了它。

Android NDK沒有STL(或者至少不是我上次查看Froyo上的SDK的時候)。

它沒有STL的原因是默認情況下,所有內容都在禁用異常的情況下進行編譯。 因此,在使用第三方STL端口時要非常小心。 如果發生任何錯誤,很有可能會崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM