bazel重新编译protobuf超出必要

时间:2019-07-04 04:44:58

标签: protocol-buffers bazel protobuf-c

我关注了this example,它工作正常。

但是有时(并非总是)当我更改了一些与protobuf和重建完全不相关的应用程序级代码时,bazel花费了所有时间重新编译protobuf。

有什么建议可以尝试调试吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题:protobuf C ++似乎重新编译了每个内部版本。建立项目的时间从约3秒延长至30秒。

我正在使用以下命令启动构建:

bazel build -c dbg --config=asan <target>
bazel run -c dbg --config=asan <target>

一旦我删除了--config=asan

,问题实际上就消失了

以下是供参考的asan的配置方式(行位于.bazelrc文件旁边的WORKSPACE中。

# Address sanitizer
build:asan --strip=never
build:asan --copt -fsanitize=address
build:asan --copt -DADDRESS_SANITIZER
build:asan --copt -DDYNAMIC_ANNOTATIONS_ENABLED=1
build:asan --copt -g
build:asan --copt -fno-omit-frame-pointer
build:asan --copt -fsanitize-address-use-after-scope
build:asan --linkopt -fsanitize=address
build:asan --dynamic_mode=off