ndk 编译 boost 库

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

  

时间: 2024-08-27 04:26:20

ndk 编译 boost 库的相关文章

NDK 编译 boost库

从 GITHUB 上拉别人一个boost工程 https://github.com/moritz-wundke/Boost-for-Android 编译需要MinGW(Min GNU for Window)下载了MinGW 下载器 http://www.mingw.org/wiki/MSYS然后将bin路径加入到path环境变量中C:\MinGW\msys\1.0\bin 执行boost 编译 build-android.bat G:\androidndkr9 Detected Android

NDK编译Boost(Cygwin环境)

因为mapnik需要部分Boost模块的支持,所以需要编译Boost库.Boost直接在Windows或者Linux下编译并不难,几条指令可以搞定,但是对于交叉编译,正如本文将要阐述的使用NDK进行编译,确实是比较头疼.借助万能的Google和Baidu,我将看到的方法做以整理并进行了亲测. 不过在这之前,我想阐明一个误区,也是给自己补了个课.就是Boost库在使用的时候,并不是都需要编译的.有一小部分和平台相关的模块必须要编译,大部分直接引用头文件即可以使用.毕竟Boost太过庞大,全部编译浪

cocos2dx通过ndk编译c++库

ndk编译c++库,然后通过jni调用实现重要代码封装,是安卓应用中最常用的技术,一方面可以将重要的代码实现隐藏,防止泄漏,也可以提高打包速度. ndk里面的sample文件夹中有很多实用的例子,其中hello-jni有一个编译c++的例子. 首先,创建一个jn文件夹,文件夹内放置Android.mk和Application.mk两个文件,Android.mk文件主要是 写入编译的c++代码,打包的库名,打包的库类型(静态库or动态库),引用的模块等等.Application.mk 是主要表示打

win7下编译boost库总结

很多情况下都会用到boost库,之前可能通过boostpro直接下载编译好的二进制库,不过遗憾的是目前不再可用了. 下面给出手动编译的过程说明,以版本1.44为例进行说明: 第一步,执行bootstrap.bat,将会在同目录下生成bjam.exe.后面的编译将依赖于bjam.exe 注:bjam.exe --show-libraries可以看到可以编译的库的名称,根据需要进行适当的挑选,也可以全部编译,不过会需要较长时间,建议选择编译自已需要的 第二步,开始编译bjam.exe toolset

VS2008编译boost库

一.下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包,我用的版本是boost.1.49.0二.新建文件夹 如果是使用下载的安装包,那么请将boost安装包解压至本地新建的目录,如:F:\boost 三.编译 (1)从vs2008的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio

Linux下编译boost库

需要把整个PCIE的工程移植到Linux下,当初就是用cmake来管理的工程的.但是命令行之类的还是需要改动.改动还不少,cmake里面很多东西都依赖于windows.包括我用cmake重新管理的工程IMageMagick,相当繁琐,工作量也大. 当然,首先需要在Linux下安装SVN: http://www.cnblogs.com/macula/archive/2012/02/12/2347637.html http://www.blogjava.net/jasmine214--love/ar

VS2017编译boost库

1.http://www.boost.org/     下载boost库. 2.解压到 D:\ProgramFiles\boost 3.环境配变量配置 VS2017更加注重跨平台性,安装文件较多,VC有三个版本,分别是arm.Hostx64.Hostx86,我们使用Hostx64. 注意,需要使用cl.exe. 默认安装时,编译器cl.exe并不在环境变量中,需要配置. 测试环境变量: 运行输入cmd,输入cl,若显示:'cl' 不是内部或外部命令,说明没有环境变量. 配置环境变量: 选择Pat

windows(msvc)下编译boost库

下载&解压 从 http://www.boost.org/ 上下载源码并解压 打开 vs 的本机工具命令提示符 cd boost_sourcecode_dir bootstrap 如果需要编译 boost.python 需要在 boost_sourcecode_dir\tools\build\example\user-config.jam 中添加如下内容: using msvc : 14.0 ; using python : 2.7 : F:\\ProgramData\\Anaconda2 :

windows下编译Boost库

下载源码 boost_1_66_0.7z 生成编译工具 D:\Project\boost_1_66_0> bootstrap.bat 配置Python环境变量(使用VS2017自带的32位python3) 编译32位boost库 D:\Project\boost_1_66_0> .\b2 install architecture=x86 address-model=32 --with-system --with-thread --with-date_time --with-regex --wi