使用Bazel编译C ++代码失败,因为"参数列表太长"

时间:2017-11-21 16:52:39

标签: bazel

我有一个庞大的项目,其中包含许多捆绑在一起的库(deps)。

编译时,Bazel会创建着名的虚拟包含,并为编译器添加相应的-iquotes / -I。

由于此列表非常大,编译器失败并显示错误:

/my/path/to/the/toolchain/cc1': execv: Argument list too long

我确实试图删除堆栈上的限制,我当前的ARG_MAX是:

jbasila@fedora $ getconf ARG_MAX
4611686018427387903

这项工作的好方法可能是使用' @' param文件。我知道它用于链接但不用于编译。

有没有办法让这项工作也用于编译?

1 个答案:

答案 0 :(得分:1)

坏消息,我们目前没有为编译操作创建param文件。合并后,您可能会被https://github.com/bazelbuild/bazel/pull/3712保存。请随意为编译操作打开param文件的功能请求。