You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行install_prereqs成功后编译Drake为何仍报fatal error: Eigen/Dense错误

报错原因说明

报错的直接诱因是FCL库头文件引用的Eigen库头文件不在当前编译的头文件查找路径中,已执行install_prereqs仍出现该问题,常见原因如下:

  • Bazel依赖可见性限制:将Drake作为外部Bazel依赖引入时,Drake内部的依赖(包括Eigen、FCL)的头文件路径默认不会对外暴露。编译Drake内部的proximity_utilities目标时,FCL的头文件查找路径没有自动加入Drake绑定的Eigen库路径,导致找不到头文件。
  • 目标依赖声明缺失:部分版本的Drake中,@drake//proximity:proximity_utilities目标没有正确声明对Eigen的传递依赖,导致编译该目标时无法继承Eigen的头文件路径配置。
  • 沙箱环境隔离:Bazel编译默认启用沙箱隔离,即使系统通过install_prereqs安装了全局Eigen库,沙箱环境也不会加载系统全局的头文件路径,仅会使用Bazel工作空间内显式声明的依赖项。
快速修复参考
  • 在项目BUILD文件中,对依赖@drake//proximity:proximity_utilities的目标显式添加对Eigen的依赖声明
  • 升级到最新稳定版Drake,该依赖传递问题已在后续版本修复
  • 编译时添加--spawn_strategy=local参数临时关闭沙箱,验证是否为沙箱隔离导致的问题

内容的提问来源于stack exchange,提问作者Eric Cousineau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:36:00