Использование Boost в Android ndk с Windows

Я пытаюсь использовать библиотеку 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. Может кто-нибудь помочь мне с этим, пожалуйста?

8

Решение

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 или около того).

18

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]