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

CMake报错Eigen3::Eigen目标包含不存在路径问题解决方法

问题成因

这个报错不是真的指/usr/include/eigen3路径不存在,核心触发原因基本是以下几类:

  • CMake缓存脏了:第一次跑配置的时候Eigen还没装,CMake缓存了"路径不存在"的标记,后续装好Eigen再跑配置没有清空旧缓存,错误标记没被刷新。
  • 重复配置导致冲突:你已经通过target_link_libraries链接了官方导入目标Eigen3::Eigen,这个目标本身会自动传递正确的头文件包含路径,不需要额外在target_include_directories里手动加INTERFACE ${EIGEN3_INCLUDE_DIR}。手动添加的配置如果和导入目标内置的路径规则有细微差异(比如多了尾部斜杠、路径拼接错误),就会触发路径校验报错。这也是为什么你手动打印EIGEN3_INCLUDE_DIR变量显示路径正确,但导入目标的校验还是失败——两者的取值来源不是完全一致的。
  • 多版本Eigen配置残留:如果之前源码编译安装过Eigen,后续又通过包管理器(apt/yum等)安装了源里的Eigen版本,之前源码安装残留的Eigen3Config.cmake配置文件会被CMake优先搜到,残留配置里硬编码了旧版本的安装路径,和当前实际安装路径不匹配,就会报路径不存在的错误。
  • 少数情况是目录权限异常:执行CMake的用户对/usr/include/eigen3目录没有读/执行权限,CMake的路径存在性校验会直接判定路径无效,哪怕你用ls能看到目录名。

另外报错后出现"Generating done"是旧版CMake的机制问题,这个错误在部分版本里是非致命的,不会中断配置流程,但后续编译阶段一定会出现找不到Eigen头文件的错误,必须修复后再编译。

解决方案

按优先级从高到低操作:

  1. 清空CMake缓存重新配置
    这是成本最低的排查手段,直接删除整个build目录,不要复用旧的缓存文件:
rm -rf build/
mkdir build && cd build
cmake ..
  1. 删除冗余的Eigen头文件配置
    直接删掉target_include_directories里的INTERFACE ${EIGEN3_INCLUDE_DIR}行,Eigen3::Eigen导入目标会自动处理头文件路径传递,不需要手动配置。修改后的相关代码如下:
find_package(Eigen3 REQUIRED)
target_link_libraries(myapplication PRIVATE "-rdynamic" Threads::Threads nlohmann_json::nlohmann_json spdlog::spdlog ${OpenCV_LIBRARIES} ${GST_LIBRARIES} snpe Eigen3::Eigen ${lib_list})
target_include_directories(myapplication
  PUBLIC ${inc_dirs_list}
  PUBLIC ${GST_INCLUDE_DIRS}
)
  1. 清理残留的多版本Eigen配置
    如果前两步操作后还是报错,搜索系统里所有的Eigen3 CMake配置文件:
sudo find / -name "Eigen3Config.cmake" 2>/dev/null

以Ubuntu/Debian系apt安装的Eigen3为例,官方正确的配置路径是/usr/lib/cmake/eigen3/Eigen3Config.cmake,如果搜索结果里出现/usr/local/lib/cmake/eigen3/路径下的配置文件,就是之前源码编译安装的残留,直接删除整个残留目录即可:

sudo rm -rf /usr/local/lib/cmake/eigen3/

删完之后再次清空build目录重新跑CMake配置即可。
4. 修正目录权限
如果以上操作都无效,检查Eigen头文件目录的权限:

ls -ld /usr/include/eigen3

正常权限应该显示为drwxr-xr-x,如果权限异常,执行命令修正:

sudo chmod 755 /usr/include/eigen3 -R

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:31:02