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

在OpenSUSE中集成Drake时出现external/mumps_internal/BUILD.bazel错误

在OpenSUSE 15.4中构建Drake仿真工具时的MUMPS依赖Bazel错误

问题概述

在OpenSUSE 15.4环境下构建Drake仿真工具,已安装系统级libmumps5和mumps-devel库,但执行cmake ..和make install时触发Bazel构建错误,提示mumps_internal的glob模式匹配失败,且找不到dmumps_seq目标。

执行的构建步骤

  1. 进入Drake项目的cmake目录:cd ~/drake/cmake
  2. 运行CMake配置:cmake ..
  3. 执行安装:make install

错误日志

ERROR: Traceback (most recent call last):
File "/home/dan/.cache/bazel/bazel/7ea85213ca47cc67b02970ecea7788b3/external/mumps_internal/BUILD.bazel", line 9, column 16, in
hdrs = glob([
Error in glob: glob pattern 'include/**' didn't match anything, but allow_empty is set to False (the default value of allow_empty can be set with --incompatible_disallow_empty_glob).
ERROR: /home/dan/.cache/bazel/bazel/7ea85213ca47cc67b02970ecea7788b3/external/ipopt_internal_fromsource/BUILD.bazel:347:16: no such target '@mumps_internal//:dmumps_seq': target 'dmumps_seq' not declared in package '' defined by /home/dan/.cache/bazel/bazel/7ea85213ca47cc67b02970ecea7788b3/external/mumps_internal/BUILD.bazel (Tip: use query "@mumps_internal//:*" to see all the targets in that package) and referenced by '@ipopt_internal_fromsource//:ipopt'

错误复现步骤

  • 克隆仓库:git clone https://github.com/hedaniel7/Drake-OpenSUSE-Integration
  • 进入仓库目录:cd Drake-OpenSUSE-Integration
  • 切换到指定提交:git checkout f0bc814fd00f07a0a686ccf1509022a4719d484b
  • 构建Docker镜像:docker-compose build --no-cache(Surface Book 3、Ubuntu 22.04环境下耗时约560秒)
  • 运行容器:docker-compose run drake-opensuse

解决方案

1. 强制使用系统MUMPS库

Drake默认会从源码构建MUMPS依赖,但你已安装系统级库,只需在CMake配置时添加参数跳过源码构建:

cmake .. -DUSE_SYSTEM_MUMPS=ON

该参数会让Drake直接链接到已安装的libmumps5和mumps-devel,避免Bazel尝试构建源码版MUMPS。

2. 手动指定库路径(可选)

如果CMake无法自动识别MUMPS的安装路径,可手动指定头文件和库目录:

cmake .. -DUSE_SYSTEM_MUMPS=ON \
  -DMUMPS_INCLUDE_DIR=/usr/include/mumps \
  -DMUMPS_LIBRARY_DIR=/usr/lib64

(OpenSUSE 15.4的MUMPS通常安装在上述路径,若实际路径不同需调整)

3. 清理构建缓存

之前的Bazel缓存已包含失败的构建状态,需清理后重新配置:

rm -rf ~/drake/cmake
mkdir ~/drake/cmake
cd ~/drake/cmake
# 执行上述带参数的cmake命令

内容的提问来源于stack exchange,提问作者Daniel He

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:42:48