Android NDK 不再依赖于 Cygwin,因此您可以在 Windows 命令提示符 ( cmd
) 中使用 NDK 构建 Boost。
为了Boost.Build
找到 NDK,编辑boost\tools\build\v2\user-config.jam
文件并附加以下文本:
import os ;
androidNDKRoot = C:/android-ndk-r8e ; # put the relevant path
using gcc : android :
$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++ :
<compileflags>--sysroot=$(androidNDKRoot)/platforms/android-9/arch-arm
<compileflags>-mthumb
<compileflags>-Os
<compileflags>-fno-strict-aliasing
<compileflags>-O2
<compileflags>-DNDEBUG
<compileflags>-g
<compileflags>-lstdc++
<compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.7/include
<compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi/include
<compileflags>-D__GLIBC__
<compileflags>-D_GLIBCXX__PTHREADS
<compileflags>-D__arm__
<compileflags>-D_REENTRANT
<archiver>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ar
<ranlib>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ranlib
;
当然,c:/android-ndk-r8e
您不必将 NDK 的正确位置放在您的 PC 上。
此外,您可以选择更新的平台 API,而不是android-9
.
另请注意,NDK 提供了几个工具链,并且上述设置指向 gcc-4.7。如果您更喜欢使用其他工具链构建 boost,请更改arm-linux-androideabi-4.7
为相关路径。
将配置放入 user-config.jam 后,打开cmd
Boostcd
所在目录,然后调用bootstrap
. 然后像这样调用b2
(例如):
b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-android target-os=linux threadapi=pthread --stagedir=android stage
更新:截至 11/2015,较旧的 NDK 工具链似乎与较新的 Boost 版本存在问题,导致编译器崩溃,因此请考虑使用更新的编译器。为此,只需将上述脚本中每出现一次 4.7 更改为 4.9。此外,值得使用更新的 Android API 进行编译(例如,andoroid-9 -> andoroid-16 左右)。