Android NDK Use stl c++ Library

Android NDK从r5b版本开始有官方支持的STL了,官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL。

步骤1:Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种:
    system --> 系统默认的最小支持的C++运行时库
    stlport_static --> 以静态链接的方式使用stlport版本的STL
    stlport_shared --> 以动态链接的方式使用stlport版本的STL
    gnustl_static  --> 以静态链接的方式使用gnu版本的STL

注意:stlport有静态链接和动态链接两种方式,而gnu的只有静态链接方法。另外一个需要注意的就是官方提供的这个stlport版本不支持RTTI和异常,

如果你使用了stlport版本的STL,则不能使用:

APP_CPPFLAGS += -frtti

APP_CPPFLAGS += -fexceptions

步骤2:Android.mk 

       ==========Use Gnu=============
       APP_STL :=gnustl_static

   LOCAL_C_INCLUDES += $(NDK)/sources/cxx-stl/gnu-libstdc++/include

       LOCAL_LDLIBS :=-L$(NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a

      ==========Use stlport============

      APP_STL :=stlport_static   

      LOCAL_C_INCLUDES += $(NDK)/sources/cxx-stl/stlport/stlport

      LOCAL_LDLIBS :=-L$(NDK)/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a

posted on 2012-09-26 10:52  jhondge  阅读(570)  评论(0)    收藏  举报

导航