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_Files\VirtualBox

  在后台启动xubuntu

D:\Program_Files\VirtualBox>vboxmanage startvm xubuntu-14.04 -type headless

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

D:\Program_Files\VirtualBox>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

转载于:https://www.cnblogs.com/swordy/p/3991243.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NDK交叉编译Boost是将Boost编译成适用于Android平台的文件,以便在Android应用中使用Boost的功能。下面是一般的NDK交叉编译Boost的步骤: 1. 下载NDK:首先,你需要下载并安装Android NDK,可以从官方网站(https://developer.android.com/ndk/downloads)上获取最新版本的NDK。 2. 下载Boost:接下来,你需要下载Boost的源代码。你可以从Boost官方网站(https://www.boost.org/users/download/)上下载最新版本的Boost。 3. 配置Boost:解压下载的Boost源代码,并进入解压后的目录。在终端中执行以下命令来配置Boost: ``` ./bootstrap.sh --with-libraries=<library_names> --with-toolset=<toolset_name> --prefix=<install_path> ``` 其中,`<library_names>`是你需要编译Boost的名称,可以根据你的需求进行选择;`<toolset_name>`是你要使用的编译工具链,例如`clang`或`gcc`;`<install_path>`是你希望安装Boost的路径。 4. 编辑user-config.jam文件:在Boost源代码目录下,创建一个名为`user-config.jam`的文件,并添加以下内容: ``` using clang : <ndk_version> : <path_to_ndk>/toolchains/llvm/prebuilt/<host_os>/bin/clang++ ; ``` 其中,`<ndk_version>`是你下载的NDK的版本号,`<path_to_ndk>`是你安装NDK的路径,`<host_os>`是你的操作系统类型(例如`darwin-x86_64`或`linux-x86_64`)。 5. 开始编译Boost:在终端中执行以下命令来开始编译Boost: ``` ./b2 toolset=clang-<ndk_version> target-os=android link=static threading=multi variant=release install ``` 这将使用指定的编译工具链和选项来编译Boost,并将编译结果安装到之前配置的安装路径中。 6. 完成编译:等待编译过程完成,然后你将在之前配置的安装路径中找到编译好的Boost文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值