如何在包含Eigen头文件时去掉eigen3文件夹名字

在CMakeLists中寻找Eigen库时发现的问题

今天看到ros中一个包在使用Eigen头文件的时候直接写的include”Eigen/Core”,在同一个系统同样的环境变量下,ros工作空间以外的工程,却必须包含include “eigen3/Eigen/Core”,不然就找不到该头文件,感觉很奇怪,查看该ros包的CMakeLists,部分截图如下
CMakeLists部分截图
发现多了一个cmake_modules的包,找到这个包,里面有个FindEigen.cmake的文件,打开之后,是这个样子
这里写图片描述
可以看到其中的EIGEN_INCLUDE_DIRS已经被重映射了,可以通过message打印出这个环境变量,为/usr/include/eigen3,所以在他的CMakeLists中,包含这个头文件路径时已经把eigen3这个文件夹包含了,这时候代码中就可以将include “eigen3/Eigen/Core”简化成
include”eigen3/Eigen/Core”。还可以直接将这个FindEigen.Cmake直接保存到当前工程的cmake_modules文件中,在自己的CMakeLists中加入
这里写图片描述
同样可以得到默认的/usr/include/eigen3路径,需要注意的是,这时候不能用find_package(Eigen3 REQUIRED),只能用find_package(Eigen REQUIRED)或者加入版本号。
如果在qt_creater编辑器中想让IDE找到这个头文件,则需要在project.includes中加入这个路径。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值