build.ninja не найден при сборке Dart SDK

Я точно следовал вики, но когда я пытаюсь построить, это не получается:

$ gclient sync
... # A lot of syncing here
Running hooks: 100% (14/14), done.
$ cd sdk/
$ ./tools/build.py --mode release --arch x64 create_sdk
ninja -C out/ReleaseX64 create_sdk
ninja: error: loading 'build.ninja': No such file or directory
BUILD FAILED
$ ls out/ReleaseX64
args.gn build.ninja build.ninja.d dart-sdk obj toolchain.ninja

1 ответ

Решение

Использование /usr/bin/ninja вместо того, что идет с depot_tools.

По крайней мере, в Windows эта проблема вызвана тем, что возникла проблема (вероятно, связанная с Visual Studio) во время работы build.py. Поскольку сценарий был прерван,build.ninjaне создается. При бегеbuild.py снова после этого он не пытается создать файлы сборки (потому что выходная папка уже создана) и просто терпит неудачу, если не находит build.ninja.

На Github есть проблема по этому поводу. Для пользователей Windows я предлагаю выполнить следующие шаги для установки Visual Studio:

  • Скачайте Visual Studio 2019 Community (бесплатно) и установите
  • Откройте Visual Studio и в меню выберите Инструменты -> Получить инструменты и компоненты. Выберите "Разработка настольных компьютеров с C++" на вкладке "Рабочие нагрузки" (вкладка по умолчанию) и установите.
  • Перейдите в Windows Apps & Features (где вы удаляете программы), найдите "Windows Software Development Kit" и нажмите "Изменить". Нажмите "Изменить", выберите "Отладчик" и продолжайте.

Я также установил переменную среды GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community, но я думаю, что в этом нет необходимости, потому что путь автоматически определяется сценариями (если он установлен в пути по умолчанию).

После этого выполните остальные шаги в вики. Как правило, установите инструменты депо, выполните "fetch dart" в новой папке "dart-sdk", затем запустите "gclient sync" из папки. Затем из "dart-sdk/sdk" запуститеpython ./tools/build.py --mode release --arch x64 create_sdk

Для меня удаление каталога xcodebuild и повторная синхронизация работали (в каталоге sdk)

rm -rf xcodebuild
gclient sync
Другие вопросы по тегам