我的问题的开始是我试图在 Cocos2d-x 中使用正则表达式。无论出于何种原因,std::tr1::regex 不适用于 C++98,因此我尝试将 std::regex 与 C++11 一起使用(以及其他一些 C++11 功能)。这现在适用于 iOS,因为在 Xcode 中更改 C++ 的版本真的很容易,但我在让它在 Android 上运行时遇到了各种各样的麻烦。
我将 NDK 的 r8e 版本与 gnustl_static 库一起使用。我将LOCAL_CPPFLAGS += -std=c++11
我尝试将工具链版本设置为 clang (除了默认值)。无论工具链如何,我现在都可以编译我的代码,但是当我尝试创建 std::regex 对象时它仍然崩溃std::regex reg1("[a-z][0-3]*");
似乎有些人能够让 C++11 与 Android NDK 扩展库一起使用(不是“最小的 C++ 运行时支持库”),但我想不通。我已经阅读了很多想法并且我已经尝试了其中的大部分,并且我已经看到了一些线索,例如来自 NDK 文档中 CHANGES.html 的以下内容:
Patched GCC 4.4.3/4.6/4.7 libstdc++ to work with Clang in C++11
我对这一切如何组合在一起知之甚少,所以有人能指出我正确的方向吗?我在这里想念什么?