Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓NDK C++;stlport_Android_C++11_Android Ndk - Fatal编程技术网

Android 安卓NDK C++;stlport

Android 安卓NDK C++;stlport,android,c++11,android-ndk,Android,C++11,Android Ndk,目前我通过gnustl使用NDK-r10c和C++11支持。不幸的是,我们的项目需要切换到stlport。从gnustl更改为stlport时,编译过程中会出现许多错误。下面是Application.mk文件 APP_PLATFORM := android-18 NDK_TOOLCHAIN_VERSION := 4.8 APP_ABI := armeabi-v7a APP_STL := stlport

目前我通过gnustl使用NDK-r10c和C++11支持。不幸的是,我们的项目需要切换到stlport。从gnustl更改为stlport时,编译过程中会出现许多错误。下面是Application.mk文件

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()等推断自动。要使用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

STLport太旧了,根本不支持C++11

像-std=c++11这样的标志只会影响编译器,而不一定影响STL实现


您必须使用gnustl或libc++

gnustl有什么问题吗?我这样问是因为默认情况下我已经使用它一段时间了,但可能我遗漏了一些东西。我一直在使用gnustl,但stlport是客户的一项要求。@AlexCohn-许多公司不想要GPL的组件,因为它会造成法律问题。当我做自由职业者的时候,我经常不得不签署没有GPL条款的合同。我甚至知道有些公司的政策明确禁止检查GPL代码,即使在错误报告中也是如此。现在在AOSP错误跟踪器中打开:。@jww gnustl尽管名称不同,但它不是GPL,而是。Alex,问题仍然和以前一样:错误:“move”不是“std”的成员,错误:“排序”未在此字段中声明scope@Alex-STLport也缺少
,等等。如何在Android上使用libc++?我不认为clang支持是应用程序STL的选项之一。