参考资料
https://zhulao.gitee.io/blog/2019/04/05/编译构建工具-bazel/index.html
bazel build ... --compilation_mode=dbg
bazel build ... --copt -g --strip=never
或
bazel build ...
并且 .bazelrc
内增加以下配置
build --strip=never
build --copt=-g
build --copt=-ggdb
解释
调试与符号信息的去除
--strip (always|never|sometimes)
指定是否从二进制文件和共享库文件中去除调试信息
# 默认是 sometimes, 当语义项 --compilation_mode=fastbuild 时
bazel build --strip=always //main:hello-world
注:
- 即使使用了
--strip=never
也不会保留 debug 信息, 如果想要得到完整符号库, 需指定使用-c dbg
或者--copt -g
或--copt -ggdb
方可
只使用--copt -g
或--copt -ggdb
是无效的,需要与--strip=never
一起组合使用
bazel build -c dbg --strip=never //main:hello-world
.bazelrc内配置也一样
- --strip 项默认是 –strip-debug, 如果不只是想去除 debug 信息, 而是去除所有符号信息, 则需指定链接项 --strip-all
bazel build --strip=always --linkopt=-Wl,--strip-all //main:hello-world