Pobieramy NDK (r10) oraz bibliotekę boost (1.55).
Zakładam, że NDK rozpakujemy do katalogu:
C:\android-ndk-r10
a boosta do katalogu:
C:\boost_1_55_0
Na końcu pliku:
D:\Dev\boost_1_55_0\tools\build\v2\user-config.jam
dodajemy:
using gcc : androidR8e : arm-linux-androideabi-g++ : <archiver>arm-linux-androideabi-ar <compileflags>-fpic <compileflags>-ffunction-sections <compileflags>-funwind-tables <compileflags>-fstack-protector <compileflags>-no-canonical-prefixes <compileflags>-fexceptions <compileflags>-frtti <compileflags>-D__ARM_ARCH_5__ <compileflags>-D__ARM_ARCH_5T__ <compileflags>-D__ARM_ARCH_5E__ <compileflags>-D__ARM_ARCH_5TE__ <compileflags>-Wno-psabi <compileflags>-march=armv5te <compileflags>-mtune=xscale <compileflags>-msoft-float <compileflags>-mthumb <compileflags>-fomit-frame-pointer <compileflags>-fno-strict-aliasing <compileflags>-finline-limit=64 <compileflags>-Wa,--noexecstack <compileflags>-DANDROID <compileflags>-D__ANDROID__ <compileflags>-DNDEBUG <compileflags>-g0 <compileflags>-O3 <compileflags>-std=c++11 <compileflags>-I$(AndroidNDKRoot)/platforms/android-9/arch-arm/usr/include <compileflags>-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.8/include <compileflags>-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include # @Moss - Above are the 'oficial' android flags <architecture>arm <compileflags>-fvisibility=hidden <compileflags>-fvisibility-inlines-hidden <compileflags>-fdata-sections <cxxflags>-D__arm__ <cxxflags>-D_REENTRANT <cxxflags>-D_GLIBCXX__PTHREADS ;
Otwieramy linię poleceń i przechodzimy do katalogu:
C:\boost_1_55_0
a następnie wydajemy polecenie:
b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-android target-os=linux threadapi=pthread --stagedir=android stage
W trakcie kompilacji pojawiały się błędy (cc1plus.exe has stopped working), a sama kompilacja zakończyła się wynikiem:
...failed updating 26 targets... ...skipped 6 targets... ...updated 237 targets...
Pomimo błędów udało się mi poprawnie utworzyć plik APK, więc prawdopodobnie błędy dotyczą modułów, które nie były używany przez naszą aplikację.
Linki
https://stackoverflow.com/questions/17667978/using-boost-in-android-ndk-with-windows