Использование stl_tree.h в Android NDK приводит к «Нет такого файла или каталога» - PullRequest
0 голосов
/ 07 января 2011

Я портирую нативную библиотеку в приложение 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 самостоятельно. Похоже, эта библиотека не включена.

Ответы [ 3 ]

1 голос
/ 07 января 2011

Я могу говорить только за C ++, но не за Android, но почему вы пытаетесь включить stl_tree.h напрямую? Вы должны включить либо <map>, либо <set>, чтобы получить фактический контейнер, который вы хотите использовать. В любом случае, в g ++ stl_tree.h - это просто частная реализация, используемая map и set.

0 голосов
/ 02 марта 2011

Android NDK не имеет STL (или, по крайней мере, не последний раз, когда я смотрел SDK, который был на Froyo).

Причина, по которой у него нет STL, заключается в том, что по умолчанию все компилируется с отключенными исключениями. Поэтому будьте очень, очень осторожны при использовании сторонних портов STL; есть большая вероятность, что, если что-то пойдет не так, оно просто рухнет.

0 голосов
/ 02 марта 2011

Я решил это с помощью stlport из NDK 5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...