基础阅读:
1. boost官网下载boost_1_55_0.tar.gz,解压放在<NDK>/sources下, 解压后的文件名: boost_1_55_0
2. 运行Cygwin Terminal
3. 生成boost编译工具: 在boost目录下运行./bootstrap.sh 或者 bootstrap.bat 生成 b2
4. 修改 <boost>/tools/build/v2/user-config.jam 内容修改如下
import os ;
if [ os.name ] = CYGWIN || [ os.name ] = NT {
androidPlatform = windows ;
}
else if [ os.name ] = LINUX {
androidPlatform = linux-x86_64 ;
}
else if [ os.name ] = MACOSX {
androidPlatform = darwin-x86 ;
}
modules.poke : NO_BZIP2 : 1 ;
ANDROID_NDK = ../.. ;
using gcc : android4.6 : $(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-g++ :
<archiver>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/prebuilt/$(androidPlatform)/bin/arm-linux-androideabi-ar
<ranlib>$(ANDROID_NDK)/toolchains/arm-linux-androideabi-4.6/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.6/include
<compileflags>-I$(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include
<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
;

本文介绍了如何在Cygwin环境下,利用Android NDK r9c编译boost 1.55。首先从boost官网下载并解压到NDK/sources目录,然后在Cygwin Terminal运行bootstrap.sh生成编译工具b2。接着修改user-config.jam文件,并解决由于gnu++11导致的auto_ptr问题。在boost目录下创建Android.mk,添加所需的库和模块引用。最后,在应用程序的Android.mk和Application.mk中配置相应的编译选项以使用编译好的boost库。

1104

被折叠的 条评论
为什么被折叠?



