Android-NDK编译支持Regex

NDK编译支持Regex的解决方案。

通过NDK编译时,一个Cpp文件用到了Regex,用于处理正则表达式,而Application.mk文件中定义得的依赖静态库是:

1
APP_STL := stlport_static

这个库里面并不包含Regex源文件,所以报错:

1
2
3
4
fatal error: regex: No such file or directory
#include <regex>
^
compilation terminated.

解决方法如下:

设置依赖静态库为:

1
APP_STL := gnustl_static

依然报错:

1
This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

Android.mk中,加上编译项:

1
LOCAL_CFLAGS += -std=c++11

编译成功。