【发布时间】:2018-01-29 19:19:52
【问题描述】:
我正在使用 Google Bazel 构建程序。当我进行影响多个文件的大更改并重建时,Bazel 随机选择一个文件来显示错误消息。这会导致大量编辑流失,而且我经常失去上下文。我修复了一个文件中的一个编译错误,然后重新构建,但我看不到修复是否有效,因为 Bazel 决定在其他文件上失败。
特别是如果我有一个目标
cc_binary(name='foo',
srcs=['bar.cc', 'qux.cc'])
然后我运行$ bazel build :foo 然后我将收到bar.cc 的错误消息。如果我再次运行而不进行任何更改,那么我将收到(可能)错误消息。对于qux.cc。我不知道是什么支配了随机性。或许我这种卑微的凡人不应该知道?
有没有办法巩固 Bazel 构建文件的顺序,这样我就不必在文件之间“物理上”和精神上跳跃?重新定位心理环境需要时间,而在修复愚蠢的错别字时,这些时间完全被浪费了。
我喜欢make 这样的东西,你可以说$ make foo.o。然后我可以修复foo.cc,并且只有在它构建之后然后才能转到bar.cc。 Alphabet Google 是否支持这种高级方法?
【问题讨论】:
-
我使用了
--jobs标志来帮助解决这个问题,@mhlopko 在下面也提到了这一点。文档说The number of concurrent jobs to run. 0 means build sequentially.所以我建议值为 0。