从源码构建Drake时弃用警告被判定为错误的解决咨询
Drake构建弃用声明转错误的无修改BUILD解决方案
该报错是Drake默认构建配置开启-Werror编译选项导致的,该选项会将所有警告(包括官方标注的弃用API警告)升级为错误打断构建,触发报错的仓库版本处于GuaranteedSubtypePreservation API的弃用过渡期,不存在代码编写错误。
无需修改BUILD文件的解决方案如下:
- 临时单次构建生效:执行构建命令时追加编译参数跳过弃用声明错误,完整命令如下:
bazel build --copt=-Wno-deprecated-declarations //tools:drake_visualizer //manipulation/util:geometry_inspector
该参数仅对单次构建生效,不会修改任何项目配置文件。
- 本地全局生效无需重复加参数:在项目根目录新建
.user.bazelrc文件(Drake官方默认将该文件加入.gitignore,不会污染仓库代码),添加如下内容:
build --copt=-Wno-deprecated-declarations
后续所有本地执行的bazel构建命令都会自动加载该参数,无需每次手动输入。
- 根治报错:拉取Drake的最新稳定版本代码,该弃用API在2021年11月之后的版本已经被完全替换,不会再触发该报错。如果继续使用Ubuntu 18.04环境,需确认最新版Drake的系统支持范围,若不再适配18.04建议使用前两种方案。
内容的提问来源于stack exchange,提问作者gg99
相关产品推荐
相关产品推荐

