zoukankan      html  css  js  c++  java
  • ndk 编译 boost 库,支持serialization

          Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。

          在Android的externa库中也可以看到boost库,不过那个只有一部分,并不是完整的Boost。点击浏览

    1. 在github上有位大牛写了个NDK编译Boost的脚本,非常傻瓜化:点击浏览

      在项目主页上可以看到该脚本的版本支持情况。

      PS: 没有r9版的信息,但是我测试r9d编译成功,r10编译失败。

      

    2. 检出项目,或者直接下载压缩包

    $ git clone https://github.com/MysticTreeGames/Boost-for-Android.git

      

      项目非常小,进入项目后发现只有5个文件,并没有Boost库,这是因为Boost库是根据编译时按选择的版本下载的。

      $ cd Boost-for-Android
    
      $ ls

      

      查看帮助可以看到一些编译选项,解释很详细,这里不罗嗦。

    $ ./build-android.sh --help

      

    3. 开始编译,当前环境:virtualbox + xubuntu14.04-x86_64

      3.1 android大部分为32位,64位android才刚出不久,所以在64位linux环境下使用ndk需要安装一些库:

    $ sudo apt-get install ia32-libs
    

      

      3.2 这里推荐大家使用 virtualbox + xubuntu + xshell 的环境

      进入vbox安装目录

    D:>cd Program_FilesVirtualBox

      在后台启动xubuntu

    D:Program_FilesVirtualBox>vboxmanage startvm xubuntu-14.04 -type headless

      关闭正在运行的xnbuntu,当然,关机应该使用 $sudo shutdown -h now

    D:Program_FilesVirtualBox>vboxmanage stopvm xubuntu-14.04

      3.3 确保环境都配好,然后开始运行编译脚本,这里选择1.49.0版本,编译到 install 目录:

    $ ./build-android.sh --boost=1.49.0 --prefix=install

      

      速度略慢,耐心等待,已经下载好的包,再次编译时不会重复下载,这脚本真心很傻瓜,亏我还写这么多!!!!

      下载完后再经过漫长的等待,就编译完了。。。。。

      

    4. 使用Crystax第三方NDK编译Boost

      4.1 对于使用Boost中的序列化功能的请注意了,官方ndk不支持boost-serialization库,原因是ndk不支持wchar_t,所以就需要用到第三方NDK crystax 了。

      crystax下载地址,点击浏览

      根据Boost-for-Android的版本支持情况,这里选择crystax-r7来编译boost-1.49.0,但是你会发现有好多crystax-r7,该用哪一个呢?????

      打开build-android.sh脚本,搜索“crystax”,会发现只有“7-crystax-5.beta3”,那么我们就使用android-ndk-r7-crystax-5.beta3-linux-x86.tar.bz2

    $ vi ./build-android.sh

      

      下载完crystax后,修改path,重新编译。

    5. 在项目中使用crystax编译的Boost需要注意的事项:

      1. 修改Application.mk中的APP_STL参数:

    APP_STL:=gnustl_static
    

      

    博客不在线,有问题直接联系QQ: 783713515

  • 相关阅读:
    SAP HANA中创建分析权限(Analytic Privilege)
    SAP HANA 中的决策表(Decision Table)
    SAP HANA procudure 创建用户
    数据挖掘与分析学习链接汇总
    Wpf 自定义窗体
    Winform里实现一个双击ListBox可以切换为TextBox编辑的效果
    一个从没见过的C# ?.语法
    VB.net怎么用Sub Main
    Office2010 帮助查看器遇到意外问题
    WcfService:单服务多契约接口以及用户名密码认证
  • 原文地址:https://www.cnblogs.com/swordy/p/3991243.html
Copyright © 2011-2022 走看看