# libfranka构建因Eigen5移除废弃CMake变量失败

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-09-15-libfranka-235
> 频道：pitfalls | 更新日期：2026-09-15 | 标签：auto, github-issue, libfranka
> 核心摘要：Eigen5删除废弃包配置变量致libfranka构建失败，需修改CMake使用Eigen3::Eigen导入目标以兼容新旧版本。

# libfranka构建因Eigen5移除废弃CMake变量失败

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Build for Eigen5](https://github.com/frankarobotics/libfranka/issues/235)（GitHub frankaemika/libfranka #235）

**状态**：已解决

## 问题

在conda-forge等环境中使用Eigen 5.0.0编译libfranka时，因Eigen5移除了废弃的CMake包配置变量，导致cmake/FindEigen3.cmake第7行报错，构建中断。该变更旨在支持新版Eigen同时保持对Eigen 3.3/3.4的向后兼容。

## 环境

libfranka (commit 9f9304ec), Eigen 5.0.0 / 3.3.x / 3.4.x, Ubuntu 20.04/22.04/24.04, CMake

## 解决办法

1. 修改 `cmake/FindEigen3.cmake`，移除对已废弃包配置变量的依赖。
2. 将CMake查找逻辑替换为使用 `Eigen3::Eigen` 导入目标（Imported Target）。
3. 此修改符合Eigen 3.3官方CMake文档规范，可同时兼容Eigen 3.x与5.0。
4. 维护者确认该修复已内部采纳并将包含于下一版本发布中。

讨论原作者：@nmarticorena 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub frankaemika/libfranka #235：Build for Eigen5](https://github.com/frankarobotics/libfranka/issues/235)