boost 1.51.0 在MAC系统上编译Android序列化静态库

公司的项目需要用到boost,在此做个记录,避免下次浪费时间。

首先需要下载好 Android NDK,和 boost 1.51.0,然后配置好NDK的环境变量,这些就不细说了

然后启动命令行,进入boost目录,执行如下命令,生成b2

./bootstrap.sh

打开/tools/build/v2/user-config.jam文件,在文件最后追加如下内容

import os ;  

if [ os.name ] = CYGWIN || [ os.name ] = NT {  
androidPlatform = windows-x86_64 ;  
}  
else if [ os.name ] = LINUX {  
androidPlatform = linux-x86_64 ;  
}  
else if [ os.name ] = MACOSX {  
androidPlatform = darwin-x86 ;  
}  

modules.poke : NO_BZIP2 : 1 ;  
#ANDROID_NDK = ../.. ;  
ANDROID_NDK = D:/Android/android-ndk-r10c ;  
using gcc : android4.8 : $(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.8/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-g++ :  
<archiver>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.8/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-ar  
<ranlib>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.8/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-ranlib  
<compileflags>--sysroot=$(ANDROID_NDK)/platforms/android-9/arch-arm  
<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.8/include  
<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include  
#<compileflags>-DBOOST_NO_STD_WSTRING
<compileflags>-DNDEBUG  
<compileflags>-D__GLIBC__  
<compileflags>-DBOOST_FILESYSTEM_VERSION=3  
<compileflags>-lstdc++  
<compileflags>-lgnustl_shared  
<compileflags>-mthumb  
<compileflags>-fno-strict-aliasing  
<compileflags>-std=gnu++11  
<compileflags>-O2
;  
  • 注意要在环境变量中配置好ANDROID_NDK的路径

执行如下命令开始编译boost::serialization,静态库最后生成在android/lib目录下

./b2 --with-system --with-serialization toolset=gcc-android4.8 link=static runtime-link=static target-os=linux --stagedir=android

最后在自己的Android.mk文件中引入静态库就行了


还有另外一种编译的方法,参考链接:http://www.cnblogs.com/swordy/p/3991243.html,准备下次尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值