2014-11-17 2 views
1

В настоящее время я использую NDK-r10c с поддержкой C++ 11 через gnustl. К сожалению, нашему проекту нужно переключиться на stlport. Переходя от gnustl к stlport, многие ошибки возникают во время компиляции. Ниже приведено Application.mk файл.Android NDK C++ stlport

APP_PLATFORM   := android-18 
NDK_TOOLCHAIN_VERSION := 4.8 
APP_ABI     := armeabi-v7a 
APP_STL     := stlport_static 
# APP_STL    := gnustl_static 
APP_CPPFLAGS   := -std=c++11 
ifeq ($(NDK_DEBUG),1) 
APP_OPTIM    := debug 
else 
APP_OPTIM    := release 
endif 

кажется, что C++ 11 функции недоступны: - cbegin(), cend() на векторах - данные() на векторах, - не может вывести авто из cbegin() и т.д.

+0

Что с gnustl для вас? Я спрашиваю, потому что я использовал его некоторое время по умолчанию, но, возможно, я чего-то не хватает. –

+0

Я всегда пользовался gnustl, но stlport является требованием от клиента. – Krzysztof

+0

@AlexCohn - многие компании не хотят компонентов GPL'd из-за юридических проблем, которые он создает. Когда я свободно занимаюсь лицензированием, мне часто приходится заключать контракты с предложением без GPL. Я даже знаю компании, у которых есть политики, которые явно запрещают изучение кода GPL, даже в отчетах об ошибках. – jww

ответ

0

Для использования STLport вам нужно будет добавить эти строки в Android.mk

# Need this line to allow use alloc on stl containers 
LOCAL_CFLAGS := -D_STLP_USE_NEWALLOC 

# c++11 support 
LOCAL_CPPFLAGS += -std=c++11 

# for stl port 
LOCAL_LDLIBS += -lstdc++ 

# include stl headers 
LOCAL_C_INCLUDES += ${NDK_ROOT}/sources/cxx-stl/stlport/stlport 
+0

Alex, проблема до сих пор: error: 'move' не является членом 'std', error: 'sort' не был объявлен в этой области – Krzysztof

+0

@Alex - STLport также отсутствует '', ' 'и т. Д. – jww

3

STLport просто слишком старый и не поддерживает C++ 11 вообще.

Флаги, такие как -std = C++ 11, будут влиять только на компилятор, не обязательно на реализацию STL.

Вам придется использовать либо gnustl или LibC++

+0

Как вы используете libC++ на Android? Я не вижу поддержки clang как один из вариантов APP_STL. – NHDaly

Смежные вопросы