bazel缺少stddef.h和其他Ubuntu 18.04的依赖项声明

bazel缺少stddef.h和其他Ubuntu 18.04的依赖项声明,bazel,Bazel,我试图建立一个现有的项目使用bazel,但得到的形式投诉 ERROR: .../BUILD:115:1: Couldn't build file xxx.o: undeclared inclusion(s) in rule '@yyy: this rule is missing dependency declarations for the following files included by zzz.c': '/usr/lib/gcc/x86_64-linux-gnu/7/include/s

我试图建立一个现有的项目使用bazel,但得到的形式投诉

ERROR: .../BUILD:115:1: Couldn't build file xxx.o: undeclared inclusion(s) in rule '@yyy:
this rule is missing dependency declarations for the following files included by zzz.c':
'/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h'
'/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h'
'/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h'
'/usr/lib/gcc/x86_64-linux-gnu/7/include/stdalign.h'
我只是在建立这个代码库,我相信其他人也可以构建。 似乎我不应该声明系统包含路径,特别是在其他人的代码中。其他人似乎没有这个问题。我是否无意中跳过了设置步骤

bazel version: 0.19.2
gcc version: 7.3.0
clang version: 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
OS: Ubuntu 18.04

是否有一个.bazelrc文件,我可以在其中指定不需要显式声明系统头?

升级到18.04后,也会出现同样的问题

固定人:

  • 完全清除bazel缓存,如中所示
  • 卸载bazel并从头开始重新安装

  • 解决方法:将gcc从7.3降级到5.5克服了这些问题。这非常令人惊讶,因为bazel是如此多平台,我没想到它会如此依赖于编译器。清除缓存对我来说就足够了。