必须指定Xcode版本才能使用Apple CROSSTOOL

时间:2017-07-24 09:23:57

标签: tensorflow bazel tensorflow-serving

我尝试使用bazel构建tensorflow服务,但我在构建期间遇到了一些错误

DoesNotExist

我已经尝试使用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仍然没有看到我的xcode(我猜)但它已经完全安装了。我甚至重新安装它以确保一切正常,但错误并没有消失

我的Bazel版本

bazel clean --expunge

操作系统是MacOS Sierra版本10.12.5

如何在bazel中指定Xcode版本以避免此错误?似乎错误是常见的,但我还没有找到如何制作bazel。 P.S我正在尝试安装tensorflow-服务如何解释这里的方式。 https://tensorflow.github.io/serving/setup

5 个答案:

答案 0 :(得分:68)

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

答案 1 :(得分:7)

看起来xcode_configure无法正确识别您已安装xcode。如果您安装xcode但尚未完全打开它,有时会发生这种情况(它可能会要求您在完全正常运行之前同意条款和条件)。如果这是问题,那么您需要再次bazel clean --expunge ...

如果这没有帮助,您可以通过调用(在构建失败后)获取一些调试信息以识别出错的地方:

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

这应包含一些与查找已安装的xcodes失败有关的注释。

答案 2 :(得分:6)

出现同样的问题,因为我使用的是XCode的测试版,我不得不在/Downloads/Xcode-beta.app中找到安装。

顺便提一下,我的解决方案是打开XCode,转到“首选项”,然后选择“位置”选项卡。 Command Line Tools下拉列表是空白的,我必须按下它并选择一个版本(在我的情况下为Xcode 9.0)。然后我运行bazel clean --expunge并重复构建过程而不会收到错误。希望这有助于某人。

答案 3 :(得分:2)

对我而言,这是xcodebuild的许可问题。跑完之后       bazel clean --expunge 我试图再次运行bazel,我已经得到了运行的指令     sudo xcodebuild -license。 我已经执行,接受了许可条款,再次运行     bazel clean --expunge 一切都开始重新开始了。 希望它能解决一些问题。

答案 4 :(得分:1)

为了构建objc,Bazel要求您指定xcode版本 - 这通常由xcode_configure自动完成。如果这不起作用,您可以使用--xcode_version标志在命令行上手动指定xcode版本。