我们的Bazel构建抱怨为
ERROR: XXX/BUILD:5:1: 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/6/include/stddef.h'
'/usr/lib/gcc/x86_64-linux-gnu/6/include/stdint.h'.
为什么会抱怨gcc系统头文件的依赖?
我使用Ubuntu 17.04和GCC 6.3.0。
答案 0 :(得分:1)
您使用自定义的crosstool吗?如果是,您可以检查cxx_builtin_include_directory消息是否涵盖了这些目录吗?
如果你使用内置的Bazel自动配置,你能确定Bazel没有使用其他一些gcc吗? Bazel调用cc -E -xc++ - -v
来查找所有内置目录,你期望这个工作吗?此外,Bazel检查是否设置了CC
环境变量,如果是,则从那里开始编译。
答案 1 :(得分:0)
我通过清理Bazels临时文件解决了这个问题。
原因是在Bazel开发过程中升级了GCC。