我尝试使用 ndk r8d 和 c++11 支持来建立我的第一个 android 项目。
一些 c+11 机制工作正常(即 lambda 表达式),但是当我尝试时
使用新的字符串操作之一,编译失败(错误:“stol”不是“std”的成员)。这是我的
项目设置:
应用程序.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
难道这些功能真的不起作用吗?
似乎在回答另一个线程 https://stackoverflow.com/a/18124627/731722.
无法使用这些功能的原因是相当根深蒂固的,不幸的是目前无法解决。
在 GNU STL 中,这些函数的实现在某种程度上依赖于 c99(_GLIBCXX_USE_C99 宏),Android 不使用它
根本原因似乎是,由于 Bionic libc 不支持复杂的数学(Android 上的标准 C 库是 Bionic),armeabi-v7a 平台上的 GNU stdlibc++ 中的 C99 功能使用已被禁用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)