在android app中使用STL库(转)
2015-11-11 16:11
585 查看
1.在jni目录下新建Application.mk; 加入 APP_STL := stlport_static右边的值还可以换成下面几个:
system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared - STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static - 使用 GNU libstdc++ 作为静态库
默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或-frtti;如果真的需要,可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。
支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS +=-fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS +=-frtti,这里再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。
强制重新编译 STLPort ,在Application.mk中加入STLPORT_FORCE_REBUILD := true可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项
2. 在要使用STL的cpp文件中包含相关的头文件,并且使用using namespace std;
原文地址: http://zhidao.baidu.com/link?url=gk1YksXOKLRforZpFq5eAj4Q96fEe1TBaoB5jmZQzxqdSqTkY0_j1O-1elVV-1I9a_N0UIZ1H_HX9mJICrX3zsbDoz7ZTn9ECSPNqRWn27q
system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持
stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的
stlport_shared - STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。
gnustl_static - 使用 GNU libstdc++ 作为静态库
默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或-frtti;如果真的需要,可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。
支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS +=-fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS +=-frtti,这里再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。
强制重新编译 STLPort ,在Application.mk中加入STLPORT_FORCE_REBUILD := true可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项
2. 在要使用STL的cpp文件中包含相关的头文件,并且使用using namespace std;
原文地址: http://zhidao.baidu.com/link?url=gk1YksXOKLRforZpFq5eAj4Q96fEe1TBaoB5jmZQzxqdSqTkY0_j1O-1elVV-1I9a_N0UIZ1H_HX9mJICrX3zsbDoz7ZTn9ECSPNqRWn27q
相关文章推荐
- android dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent的响应流程
- cocos2d-x mruby学习笔记--扩展
- android 设置progressbar的高度
- iOS沙盒目录,Documents、Library、tmp
- xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)
- 【Unity实用小方法】鼠标双击的判断
- [IOS]edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets
- 【Android】【转】查看内存
- Android编程之SparseArray<E>
- Liferay Portal 学习笔记之<portlet:defineObjects>标签
- iOS开发多线程篇—线程安全
- Android Studio插件开发实战(2)-代码生成类插件开发
- iOS开发的22个奇葩技巧
- 一分钟让你学会使用Android AsyncTask
- Android系统adb调试命令及常用抓log方法
- 用Ranorex进行安卓IOS自动化测试
- iOS沙盒机制
- Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymu
- [iOS基础]关于Mail的一切
- Android之修改系统控件的样式