簡體   English   中英

Android NDK C ++ stlport

[英]Android NDK C++ 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() - 矢量上的data(), - 不能從cbegin()等推斷出auto。

STLport太舊了,完全不支持C ++ 11。

像-std = c ++ 11這樣的標志只會影響編譯器,不一定會影響STL實現。

您將不得不使用gnustl或libc ++

要使用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

暫無
暫無

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

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