Я пытаюсь использовать библиотеку boost с Android ndk в Eclipse с Windows. Я пытался следовать этот урок
Я застрял в шаге с командой «BJAM» в Cygwin.
bjam —without-python —without-serialization toolset = gcc-android4.4.3 link = статическая runtime-link = статическая target-os = linux —stagedir = android
Ошибка: команда bjam не найдена.
Что такое бжам? Также я использовал буст 1.53 вдоль ndk r8e. Может кто-нибудь помочь мне с этим, пожалуйста?
Android NDK больше не зависит от Cygwin, поэтому вы можете собрать Boost с помощью NDK из командной строки Windows (cmd
).
Чтобы сделать Boost.Build
найди НДК, отредактируй boost\tools\build\v2\user-config.jam
файл и добавьте следующий текст:
import os ;
androidNDKRoot = C:/android-ndk-r8e ; # put the relevant path
using gcc : android :
$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/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.7/include
<compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi/include
<compileflags>-D__GLIBC__
<compileflags>-D_GLIBCXX__PTHREADS
<compileflags>-D__arm__
<compileflags>-D_REENTRANT
<archiver>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ar
<ranlib>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ranlib
;
Конечно, вместо c:/android-ndk-r8e
Вы должны поместить правильное местоположение NDK на вашем компьютере.
Кроме того, вы можете выбрать более новый API платформы вместо android-9
,
Также обратите внимание, что NDK поставляет несколько цепочек инструментов, и вышеуказанные настройки указывают на gcc-4.7. Если вы предпочитаете создавать ускорение с помощью другой цепочки инструментов, измените arm-linux-androideabi-4.7
на соответствующий путь.
После того, как вы поместили конфигурацию в user-config.jam, откройте cmd
, cd
в каталог, где находится Boost, и вызвать bootstrap
, Затем вызвать b2
вот так (например):
b2 --without-python --without-serialization threading=multi link=static runtime-link=static toolset=gcc-android target-os=linux threadapi=pthread --stagedir=android stage
ОБНОВИТЬ: По состоянию на 11/2015, старые наборы инструментов NDK, похоже, имеют проблемы с более новыми версиями Boost, что приводит к сбою компилятора, поэтому рассмотрите возможность использования более нового компилятора. Для этого просто измените каждое вхождение 4.7 в приведенном выше сценарии на 4.9. Кроме того, стоит скомпилировать более позднюю версию Android API (например, andoroid-9 -> andoroid-16 или около того).
Других решений пока нет …