【问题标题】:Xcode version must be specified to use an Apple CROSSTOOL必须指定 Xcode 版本才能使用 Apple CROSSTOOL
【发布时间】:2017-12-29 19:37:21
【问题描述】:

我尝试使用 bazel 构建 tensorflow-serving,但在构建过程中遇到了一些错误

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 cleanbazel 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

我应该怎么做才能在 bazel 中指定 Xcode 版本以避免此错误?似乎该错误很常见,但我还没有找到如何制作 bazel 构建。 P.S 我正在尝试按照此处解释的方式安装 tensorflow-serving。 https://tensorflow.github.io/serving/setup

【问题讨论】:

    标签: tensorflow bazel tensorflow-serving


    【解决方案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
    

    【讨论】:

    • 如果您在使用 tensorflow 的其他包时遇到类似问题,请重复前 4 行并构建您需要的任何包,而不是第 5 行
    【解决方案2】:

    遇到了同样的问题,由于我使用的是 XCode 的测试版,我不得不在 /Downloads/Xcode-beta.app 中找到安装。

    顺便说一句,我的解决方案是打开 XCode,转到 Preferences,然后选择 Locations 选项卡。 Command Line Tools 下拉列表是空白的,我必须按下它并选择一个版本(在我的例子中是 Xcode 9.0)。然后我运行bazel clean --expunge 并重复构建过程而没有收到错误。希望这对某人有所帮助。

    【讨论】:

    • 对于使用CommandLineTools 的人来说,这是正确的答案(或者更确切地说是拼图中缺失的部分)。谢谢!
    【解决方案3】:

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

    如果这没有帮助,您可以通过调用(在构建失败后)获取一些调试信息来确定出了什么问题:

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

    这应该包含一些与无法找到已安装的 xcode 有关的 cmets。

    【讨论】:

    • 我已同意所有条款和条件,甚至尝试打开 Xcode 项目但仍然出现相同的错误。似乎必须找出如何手动操作,感谢您的帮助,这就是我在使用您编写的行后得到的结果 xcode_config(name = 'host_xcodes') # Error: Running xcodebuild -version failed, return code 72, stderr: xcrun:错误:无法找到实用程序“xcodebuild”,不是开发人员工具或在 PATH 中,标准输出:KakaduDevs-Mac-mini:serving Kakadu$
    【解决方案4】:

    对我来说,这是 xcodebuild 的许可问题。运行后 bazel clean --expunge 我试图再次运行 bazel 并且我得到了运行的指令 sudo xcodebuild -license。 我已执行,接受许可条款,再次运行 bazel clean --expunge 一切又开始工作了。 希望它能解决一些问题。

    【讨论】:

    • 似乎是对评分最高的答案的解释。
    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 2015-12-23
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2014-11-16
      • 2015-10-03
      相关资源
      最近更新 更多