Как собрать boost 1.69.0 для Android с NDK r18b, используя moritz-wundke / Boost-for-Android? - PullRequest
0 голосов
/ 23 января 2019

Я пытался использовать https://github.com/moritz-wundke/Boost-for-Android для компиляции boost для Android.Сообщается, что 1.69.0 поддерживается для NDK r18b.Я нахожусь под Windows 7.

Я столкнулся со многими проблемами, некоторые из них я мог исправить, но, наконец, я не смог ничего скомпилировать:

  • Установлен MinGW
  • Установлен MySYS
  • Добавлен MySYS в PATH
  • Ran build-android.bat
  • Ошибка: <path to NDK r18b> is not a valid NDK root -> Это потому, что скрипт проверяет, существует ли ndk-build -> В сценарии
  • заменил "ndk-build" на "ndk-build.cmd". Затем я получил ошибку: sed: invalid option --E -> Удален параметр -E из sed в строке 241
  • Обратите внимание, чтоЯ вижу много неблокирующих предупреждений expr: warning: unportable BRE:
  • Затем я получил ошибку: Undefined or not supported Android NDK version: Pkg.Revision = 18.1.5063045 (скорее всего, из-за этой опции -E, которую я только что удалил) -> Заменил "16.0"|....|"18.1") на *)и удалил *) оригинальное утверждение в строках 301/307
  • Затем он сообщил, что curl отсутствует, я установил curl и добавил его в свой путь
  • Наконец, Boost 1.69.0 загрузка началась
  • Затем я получил тонны ошибок, и ничего не было построено:
C:/dev/boost/Boost-for-Android-master/boost_1_69_0/tools/build/src/tools\common.
jam:979: in toolset-tag
*** argument error
* rule numbers.less ( n1 n2 )
* called with: ( 3 )
* missing argument n2 C:/dev/boost/Boost-for-Android-master/boost_1_69_0/tools/build/src/util\numbers.
jam:66:see definition of rule 'numbers.less' being called

и:

am:305: Unescaped special character in argument
<compileflags>$(AndroidNDKRoot)/
toolchains/x86_64-4.9/prebuilt/${PlatformOS}-x86_64 Performing
configuration checks

и наконец:

ERROR: Failed to build boost for android for x86_64!

Есть идеи, что я делаю неправильно?


Редактировать: Согласно https://github.com/moritz-wundke/Boost-for-Android/issues/156, естьпроблема с бустом 1.69.0.Поэтому я попытался с 1.68.0, затем я получаю различные ошибки:

C:\dev\boost\Boost-for-Android-master\boost_1_68_0\tools/build/src\user-config.j
am:70: Unescaped special character in argument <compileflags>$(AndroidNDKRoot)/t
oolchains/aarch64-linux-android-4.9/prebuilt/${PlatformOS}-x86_64

и

error: No best alternative for libs/context/build/asm_sources
    next alternative: required properties: <abi>aapcs <address-model>32 <architecture>arm <binary-format>elf <threading>multi <toolset>clang
...
    next alternative: required properties: <abi>sysv <architecture>combined <binary-format>mach-o <threading>multi
    not matched

и, наконец,

clang-linux.archive ..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\build\clan
g-linux-arm64v8a\release\link-static\target-os-android\threading-multi\libboost_
atomic-clang-mt-a64-1_68.a
'"ranlib"' n'est pas reconnu en tant que commande interne
ou externe, un programme ex'cutable ou un fichier de commandes.

    "c:/Android2/android-ndk-r18b/toolchains/llvm/prebuilt/windows-x86_64/bin/ll
vm-ar"  rc "..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\build\clang-linux-
arm64v8a\release\link-static\target-os-android\threading-multi\libboost_atomic-c
lang-mt-a64-1_68.a" "..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\build\cla
ng-linux-arm64v8a\release\link-static\target-os-android\threading-multi\lockpool
.o"
    "ranlib" "..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\build\clang-linu
x-arm64v8a\release\link-static\target-os-android\threading-multi\libboost_atomic
-clang-mt-a64-1_68.a"

...failed clang-linux.archive ..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\
build\clang-linux-arm64v8a\release\link-static\target-os-android\threading-multi
\libboost_atomic-clang-mt-a64-1_68.a...
...removing ..\build\build\arm64-v8a\boost\bin.v2\libs\atomic\build\clang-linux-
arm64v8a\release\link-static\target-os-android\threading-multi\libboost_atomic-c
lang-mt-a64-1_68.a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...