Версия Xcode должна быть указана для использования Apple CROSSTOOL

Я пытаюсь построить тензор потока, использующий bazel, но я столкнулся с некоторыми ошибками во время сборки

ERROR:/private/var/tmp/_bazel_Kakadu/3f0c35881c95d2c43f04614911c03a57/external/local_config_cc/BUILD:49:5: in apple_cc_toolchain rule @local_config_cc//:cc-compiler-darwin_x86_64: Xcode version must be specified to use an Apple CROSSTOOL.

ERROR: Analysis of target '//tensorflow_serving/sources/storage_path:file_system_storage_path_source_proto' failed; build aborted.

Я уже пытался использовать bazel clean и bazel clean --expunge но это не помогло, и все же Bazel не видит мой xcode (я полагаю), но он полностью установлен. Я даже переустановил его, чтобы убедиться, что все работает нормально, но ошибка не исчезла

Моя версия Bazel

Build label: 0.5.2-homebrew
Build target: bazel-out/darwin_x86_64-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Jul 13 12:29:40 2017 (1499948980)
Build timestamp: 1499948980
Build timestamp as int: 1499948980
KakaduDevs-Mac-mini:serving Kakadu$ 

ОС MacOS Sierra версии 10.12.5

Что я должен сделать, чтобы указать версию XCode в Bazel, чтобы избежать этой ошибки? Кажется, что ошибка распространена, но я не нашел, как я могу сделать bazel build. PS Я пытаюсь установить Службу поддержки тензорного потока, как описано здесь. https://tensorflow.github.io/serving/setup

Ответ 1

bazel clean --expunge 
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license
bazel clean --expunge 
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

Ответ 2

Похоже, xcode_configure неправильно идентифицирует, что у вас установлен xcode. Иногда это может произойти, если вы устанавливаете xcode, но еще не полностью открыли его (он может попросить вас согласиться с Условиями и положениями до полной функциональности). Если это проблема, вам нужно bazel clean --expunge после этого...

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

cat $(bazel info output_base)/external/local_config_xcode/BUILD

Это должно содержать некоторые комментарии, относящиеся к сбоям в поиске установленных кодов.

Ответ 3

Имела ту же проблему, и поскольку я использую бета-версию XCode, мне пришлось найти установку в /Downloads/Xcode-beta.app вместо этого.

Кстати, решение для меня состояло в том, чтобы открыть XCode, перейти в "Настройки" и выбрать вкладку "Местоположения". Выпадающий список Command Line Tools был пустым, и мне пришлось нажать его и выбрать версию (Xcode 9.0 в моем случае). Затем я запустил bazel clean --expunge и повторил процесс сборки, не получив ошибку. Надеюсь, это поможет кому-то.

Ответ 4

Для меня это была проблема лицензирования для xcodebuild. После запуска     bazel clean --expunge Я попытался запустить снова bazel, и у меня есть инструкция для запуска   sudo xcodebuild -license. Я выполнил, принял условия лицензии, снова запустил   bazel clean --expunge и все снова начало работать. Надеюсь, он решает некоторые из этих случаев.

Ответ 5

Чтобы построить objc, Bazel требует, чтобы вы указали версию xcode - это обычно делается автоматически xcode_configure. Если это не работает, вы можете вручную указать версию xcode в командной строке, используя флаг -xcode_version.