1. 程式人生 > >編譯boost到Android平臺

編譯boost到Android平臺

在\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這句程式碼給注掉