2016-06-07 32 views

risposta

3

Per me ha funzionato questo

  1. ho creato un clangore Standalone toolchain https://developer.android.com/ndk/guides/standalone_toolchain.html
  2. ho impostato il mio PATH per PATH=/your/path/ndk/toolchain/bin
  3. Run ./bootstrap.sh --with-toolset=clang
  4. ./b2 toolset=clang cxxflags="-stdlib=libc++" threading=multi threadapi=pthread link=shared runtime-link=shared -j 6
  5. ho collegato lo aginst il mio progetto
.210

io ho preso uno sguardo su queste pagine

Compile and use boost for Android NDK R10e

http://nolimitsdesigns.com/game-design/how-to-build-boost-for-the-android-ndk-llvm/

3

Corporatura boost_1_62_0 per Android-21 sotto Windows64.

Supponendo NDK installato su C:\Programs\Android\sdk\ndk-bundle e boost su c:\boost_1_62_0.

Installare mingw: using msys2-x86_64 from MSYS2

Installare costruire strumenti da mingw prompt (qualcosa di simile):

$ pacman -S gcc binutils 

Creare android.clang.jam file in C:\boost_1_62_0\ con tali contenuti del testo:

import os ; 
local AndroidNDKRoot = C:/Programs/Android/sdk/ndk-bundle ; 
using clang : android 
: 
C:/Programs/Android/toolchain21/bin/clang++ 
: 
<compileflags>-fexceptions 
<compileflags>-frtti 
<compileflags>-fpic 
<compileflags>-ffunction-sections 
<compileflags>-funwind-tables 
<compileflags>-Wno-psabi 
<compileflags>-march=armv7-a 
<compileflags>-mfloat-abi=softfp 
<compileflags>-mfpu=vfpv3-d16 
<compileflags>-fomit-frame-pointer 
<compileflags>-fno-strict-aliasing 
<compileflags>-finline-limit=64 
<compileflags>-I$(AndroidNDKRoot)/platforms/android-21/arch-arm/usr/include 
<compileflags>-Wa,--noexecstack 
<compileflags>-DANDROID 
<compileflags>-D__ANDROID__ 
<compileflags>-DNDEBUG 
<compileflags>-O2 
#<compileflags>-g 
<compileflags>-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/include 
<compileflags>-I$(AndroidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include 
<architecture>arm 
<compileflags>-fvisibility=hidden 
<compileflags>-fvisibility-inlines-hidden 
<compileflags>-fdata-sections 
<cxxflags>-D__arm__ 
<cxxflags>-D_REENTRANT 
<cxxflags>-D_GLIBCXX__PTHREADS 
; 

Setup boost dal prompt mingw:

$ export NDK=/c/Programs/Android/sdk/ndk-bundle 
$ echo ensure msi-installed Python is on path (not msys version): 
$ export PATH=/c/Python27:$PATH 
$ $NDK/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir /c/Programs/Android/toolchain21 
$ ./bootstrap.sh --with-toolset=gcc 
$ ./b2 --user-config=android.clang.jam threading=multi link=static \ 
runtime-link=static toolset=clang-android target-os=linux \ 
threadapi=pthread --stagedir=android --with-chrono \ 
--with-program_options --with-system --with-thread --with-random \ 
--with-regex 
0

Sì, il repository che hai citato sembra non essere più mantenuto. L'autore sembra non rispondere a nessuna mail sull'argomento. Se guardi, vedrai che ogni nuova versione di boost supportata richiede molto lavoro (molti flag speciali nei file di configurazione). Questo è presumibilmente il motivo per cui non ha tempo per mantenerlo. Ho anche provato ad aggiornare a 1.64 usando un fork ma ho rinunciato dopo innumerevoli messaggi di errore e invece ho usato un metodo diverso basato su uno script di crystax. È semplice e dovrebbe funzionare praticamente per qualsiasi versione. È possibile trovare i dettagli e lo script (semplice e indolore da eseguire) qui: http://silverglint.com/boost-for-android/ Funziona con clang e gcc.

Inoltre è inclusa un'app di esempio che mostra come utilizzare i binari di boost così costruiti.