尝试从https://github.com/google/protobuf/(3.4.1版本)在OS X上构建:protoc
时,我得到以下内容:
$ bazel build @com_google_protobuf//:protobuf_lite
ERROR: <...>/external/com_google_protobuf/BUILD:93:1: undeclared inclusion(s) in rule '@com_google_protobuf//:protobuf_lite':
this rule is missing dependency declarations for the following files included by 'external/com_google_protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc':
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/stddef.h'
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/__stddef_max_align_t.h'
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/stdint.h'
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/stdarg.h'
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/include/limits.h'.
```
但是,当建立目标而不是外部回购时,它会成功。
$ cd <...>/external/com_google_protobuf/
$ bazel build :protobuf_lite
列出的标题是系统标题,因此我遗漏了一些非常明显的内容。
有什么想法吗?
答案 0 :(得分:1)
来自https://github.com/bazelbuild/bazel/issues/2852#issuecomment-295747929:
设置BAZEL_SH=/bin/bash
可以解决问题。
答案 1 :(得分:0)
FWIW,我今天在升级MacOS命令行工具后也遇到了同样的错误。
对我有用的是bazel clean --expunge
。如果没有--expunge,则无法解决问题。