Boost dla Androida pod Windowsem

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

https://github.com/MysticTreeGames/Boost-for-Android

Ten wpis został opublikowany w kategorii Android. Dodaj zakładkę do bezpośredniego odnośnika.