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

来源:互联网 发布:bim施工现场布置软件 编辑:程序博客网 时间:2024/05/18 01:13

公司的项目需要用到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
原创粉丝点击