編譯boost到Android平臺
阿新 • • 發佈:2019-01-23
在\tools\build\src新建檔案 user-config.jam
檔案內容如下
import os ;
androidNDKRoot = D:/android_dev/android-ndk-r10c ;
using gcc : android :
$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.9/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.9/include
<compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include
<compileflags>-D__GLIBC__
<compileflags>-D__arm__
<archiver>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi -ar
<ranlib>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-ranlib
;
開啟命令列工具,cd到boost根目錄
執行
bootstrap
執行
b2.exe --without-python --prefix=.\out\ --build-dir=.\build variant=release link=static runtime-link=static toolset=gcc-android target-os=linux threading=multi --stagedir=android stage
執行完會多出一個android資料夾,裡面就是編譯好的庫
編譯過程中出的問題
在編譯boost的thread庫找不到”process.h”,提示”fatal error: process.h: No such file or directory”
解決辦法:找到這個檔案D:\boost_1_59_0\libs\thread\build\Jamfile.v2,
裡面有這一段程式碼
local rule default_threadapi ( )
{
local api = pthread ;
if [ os.name ] = "NT" { api = win32 ; }
return $(api) ;
}
把if這句程式碼給注掉