ninja: фатальный: chdir в ‘/ out / Release’ — нет такого файла или каталога

#ninja

#ninja

Вопрос:

я получаю исходный код (chrome) с помощью

 $ glient sync
  

выполнил весь запрос команды :

      - gclient config ......
  - GYP_GENERATORS ...
  - build/intall-build-desp.......
  - GYP_DEFINES....
  - etc...
  

но когда я пытаюсь создать chromedriver таким образом :

 lolo@ssa-workstation:~/work$ ninja -C /out/Release chromedriver
  

я всегда получаю это сообщение

 ninja: Entering directory `/out/Release'
ninja: fatal: chdir to '/out/Release' - No such file or directory`
  

пожалуйста, любая помощь?

Комментарии:

1. 1 У меня точно такая же проблема. Однако я понятия не имею, как использовать конфигурацию gclient (и так далее)… Документация просто ужасна.

2. Вы должны быть в src каталоге.

Ответ №1:

Только что нашел то, что сработало для меня (Mac OS X Catalina 10.15.2) — исходный код

(Примечание: Вероятно, вам придется заменить ios or iphonesimulator на chromedriver , поскольку я создавал chromium для iOS)

Вы должны ввести src папку (после того, как вы использовали fetch — fetch ios в моем случае) и использовать gn args out/Debug-iphonesimulator (или заменить out/Debug-iphonesimulator выбранным out/ каталогом), чтобы открыть редактор ( vi editor в моем случае), чтобы установить следующие gn переменные и восстановить:

 # Set to true if you have a valid code signing key.
ios_enable_code_signing = false
target_os = "ios"
# Set to "x86", "x64", "arm", "armv7", "arm64". "x86" and "x64" will create a
# build to run on the iOS simulator (and set use_ios_simulator = true), all
# others are for an iOS device.
target_cpu = "x64"
# Release vs debug build.
is_debug = true
  

После этого вы сможете запустить свою команду без проблем (но убедитесь, что depot_tools находятся в вашем $PATH )

Я запустил autoninja -C out/Debug-iphonesimulator gn_all , и это сработало как шарм 🙂

Для справки я использовал официальную документацию из здесь и здесь

Есть другой вариант, который можно использовать GYP вместо gn на той же странице документации (я не пробовал сам, но это все равно может кому-то помочь):

В каталоге, где вы собираетесь проверить код, создайте chromium.gyp_env , чтобы настроить сборку на использование целей iOS:

 cat > chromium.gyp_env <<EOF
{
  "GYP_DEFINES": "OS=ios",
  "GYP_GENERATORS": "ninja,xcode-ninja",
}
EOF
  

Если вы не настроены подписывать продукты сборки iOS через учетную запись разработчика, вам следует вместо этого использовать:

 cat > chromium.gyp_env <<EOF
{
  "GYP_DEFINES": "OS=ios chromium_ios_signing=0",
  "GYP_GENERATORS": "ninja,xcode-ninja",
}
EOF
  

Надеюсь, это может сэкономить кому-то много времени на поиск ответа 🙂