Как построить boost для ARM64 UWP? - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно использовать boost на платформе Windows UWP ARM64.По этой причине я сначала попытался создать boost из источника с 32-битным ARM.Это работало без особых усилий, но сборка для ARM64 (я пробовал V1.68, более новая версия не работает из-за отсутствующих библиотек) приводит к следующей ошибке:

.../tools/build/src/tools\msvc.jam:1093: in set-setup-command
*** argument error
* rule virtual-target.from-file ( file : file-loc : project )
* called with: (  : /.../boost-prefix/src/boost : object(project-target)@131 )
* missing argument file
.../tools/build/src/build\virtual-target.jam:970:see definition of rule 'virtual-target.from-file' being called
.../tools/build/src/tools\msvc.jam:652: in msvc.compile.c++
.../tools/build/src/kernel\modules.jam:107: in modules.call-in
.../tools/build/src/util\indirect.jam:105: in indirect.call
.../tools/build/src/build\virtual-target.jam:902: in execute
.../tools/build/src/build\virtual-target.jam:821: in class@action.actualize
.../tools/build/src/build\virtual-target.jam:332: in actualize-action
.../tools/build/src/build\virtual-target.jam:518: in actualize-no-scanner
.../tools/build/src/build\virtual-target.jam:142: in class@virtual-target.actualize
.../tools/build/src/build\virtual-target.jam:842: in actualize-source-type
.../tools/build/src/build\virtual-target.jam:863: in actualize-sources
.../tools/build/src/build\virtual-target.jam:801: in class@action.actualize
.../tools/build/src/build\virtual-target.jam:332: in actualize-action
.../tools/build/src/build\virtual-target.jam:518: in actualize-no-scanner
.../tools/build/src/build\virtual-target.jam:142: in class@virtual-target.actualize
.../tools/build/src/build\virtual-target.jam:948: in actualize-source-type
.../tools/build/src/build\virtual-target.jam:863: in actualize-sources
.../tools/build/src/build\virtual-target.jam:801: in class@action.actualize
.../tools/build/src/build\virtual-target.jam:332: in actualize-action
.../tools/build/src/build\virtual-target.jam:518: in actualize-no-scanner
.../tools/build/src/build\virtual-target.jam:142: in class@virtual-target.actualize
.../tools/build/src\build-system.jam:810: in load
...\tools\build\src/kernel\modules.jam:295: in import
...\tools\build\src/kernel/bootstrap.jam:139: in boost-build
...\boost-build.jam:17: in module scope

Кажется, что вvirtual-target.from-file ( file : file-loc : project ) вызов переменной file должен быть установлен.

Я заглянул в файл, выдающий ошибку, и попытался выяснить, что должна содержать переменная.Я не нашел места, где установлена ​​переменная, но попытка его на другой платформе (UWP ARM) показала, что это должно быть что-то вроде

...\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsx86_arm64.bat.Это вызывает у меня вопрос, правильно ли я выполнил настройку, вызвав следующие команды в каталоге boost:

./bootstrap.bat
./b2.exe architecture=arm windows-api=store toolset=msvc-14.1 address-model=64 --build-type=minimal --abbreviate-paths -j12 link=static threading=multi runtime-link=shared variant=debug --prefix=.../install/x64_uwp --with-system

Затем я попытался вручную установить эту переменную в msvc.jam (сознавая, чтопроблемные настройки, вероятно, приведут к другим проблемам), но это приводит к ошибкам в некоторых строках ниже:

.../tools/build/src/kernel\modules.jam:107: in modules.call-in
*** argument error
* rule msvc.adjust-setup-command ( new-setup : setup : properties * )
* called with: ( <pbin.v2\standalone\msvc\msvc-14.1>msvc-setup.bat :  : <relevant>address-model <relevant>architecture <relevant>asynch-exceptions <relevant>cflags <relevant>cxxflags <relevant>cxxstd <relevant>debug-store <relevant>debug-symbols <relevant>define <relevant>exception-handling <relevant>extern-c-nothrow <relevant>include <relevant>inlining <relevant>instruction-set <relevant>mc-input-encoding <relevant>mc-output-encoding <relevant>mc-set-customer-bit <relevant>optimization <relevant>pch <relevant>pch-file <relevant>pch-header <relevant>pch-source <relevant>rtti <relevant>runtime-debugging <relevant>runtime-link <relevant>threading <relevant>threading:<relevant>runtime-link <relevant>threading:<relevant>toolset <relevant>toolset <relevant>toolset-msvc:version <relevant>undef <relevant>user-interface <relevant>warnings <relevant>warnings-as-errors <relevant>windows-api <toolset-msvc:version>14.1 <toolset>msvc <windows-api>desktop :  :  :  :  :  :  :  :  :  :  :  :  :  :  :  )
* missing argument setup
.../tools/build/src/tools\msvc.jam:1037:see definition of rule 'msvc.adjust-setup-command' being called
.../tools/build/src/util\indirect.jam:105: in indirect.call
.../tools/build/src/build\virtual-target.jam:902: in execute
.../tools/build/src/build\virtual-target.jam:821: in class@action.actualize
.../tools/build/src/build\virtual-target.jam:332: in actualize-action
.../tools/build/src/build\virtual-target.jam:518: in actualize-no-scanner
.../tools/build/src/build\virtual-target.jam:142: in class@virtual-target.actualize
.../tools/build/src/tools\msvc.jam:1102: in set-setup-command
...

Так что это, вероятно, какая-то проблема на этапе установки.

У кого-то есть опыт сборкиboost (для UWP ARM64) и может помочь мне правильно настроить и собрать его?

...