我尝试使用NDK r8d与C ++ 11的支持,成立了我的第一个Android项目。一些C + 11机制工作的罚款(即黏巴达前pressions),但是当我尝试使用新的字符串操作之一,编译失败(错误:短距起降不是性病的成员)。这里是我的项目设置:
I try to set up my first android project using ndk r8d with c++11 support. Some c+11 mechanisms work fine (i.e. lambada expressions), but when i try to use one of the new string operations, the compile fails ( error: 'stol' is not a member of 'std'). Here are my project settings:
Application.mk
Application.mk
APP_MODULES := MyLib
APP_CPPFLAGS := -std=gnu++0x
APP_CPPFLAGS += -frtti
APP_CPPFLAGS += -fexceptions
APP_CPPFLAGS += -DDEBUG
APP_ABI := armeabi-v7a
APP_PLATFORM:=android-14
APP_STL := gnustl_static
APP_GNUSTL_CPP_FEATURES := rtti exceptions
NDK_TOOLCHAIN_VERSION=4.7
是那些功能其实不工作?
Are those functions actually not working?
推荐答案
看起来对另一个线程。
为什么不能使用的功能的原因是相当根深蒂固,可惜目前无法解决的。
The reason why you cannot use the functions is quite deep rooted, and unfortunately currently unsolvable.
在GNU STL实现这些功能在某种程度上依赖于C99(_GLIBCXX_USE_C99宏),即不使用由Android
In GNU STL implementation of these function somehow relies on c99 (_GLIBCXX_USE_C99 macro), that is not used by Android
根本原因似乎是C99的功能使用已经在GNU stdlibc ++的armeabi-V7A平台上被禁用由于这一事实的仿生libc中不支持复杂的数学(Android上的标准C库是仿生)
The root cause seems to be that the C99 functionality usage has been disabled in the GNU stdlibc++ on the armeabi-v7a platform due to the fact the the Bionic libc does not support complex math (the standard C library on Android is Bionic).
相关推荐
最新文章