Eigen3使用cmake配置的一个小坑

eigen3没有库,只有头文件

CMakeLists中如果这么写

find_package(Eigen3 REQUIRED)
message(STATUS "Eigen3_DIR = ${Eigen3_DIR}")
message(STATUS "EIGEN3_INCLUDE_DIRS = ${EIGEN3_INCLUDE_DIRS}")

则会打印如下信息

-- Eigen3_DIR = /usr/share/eigen3/cmake
-- EIGEN3_INCLUDE_DIRS = /usr/include/eigen3

/usr/share/eigen3/cmake/Eigen3Config.cmake是find_package()查找Eigen3库的依据,进入文件中可以看到如下,是没有库的信息的
在这里插入图片描述
然后在CMakeLists.txt中补充以下即可把头文件制定出来

include_directories(${EIGEN3_INCLUDE_DIRS})

当然,如果你不愿意用find_package()搜索的方法,也可以直接

include_directories(/usr/include/eigen3)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Eigen3一个用于线性代数的C++模板库,它提供了许多常见的数学运算,如向量、矩阵、四元数等,支持所有主流平台和操作系统,并使用头文件的方式使得将Eigen3集成到其他项目中非常容易。使用Eigen3可以大大简化线性代数问题的编写,提高代码的可读性和可重用性。 在使用Eigen3之前,首先要确保系统安装了CMakeCMake一个开源的跨平台自动化构建工具,它可以生成与操作系统、编译器及构建工具无关的Makefile或Visual Studio解决方案,使得在不同平台和环境中都可以方便地编译和构建项目。 安装完成CMake之后,将Eigen3的源代码包下载到本地,解压后进入解压后的目录,在命令行中执行以下命令: mkdir build cd build cmake .. make 其中,mkdir命令用于创建一个名为build的目录,cd命令用于进入该目录,cmake命令用于生成Makefile,make命令用于编译生成可执行文件。 使用Eigen3的方法非常简单,只需在代码中加入#include <Eigen/Core>,就可以使用其中的基本数学运算了,例如: #include <Eigen/Core> #include <iostream> using namespace Eigen; int main() { Matrix3f A; A << 1,2,3, 4,5,6, 7,8,9; Vector3f b(1,2,3); Vector3f x = A.colPivHouseholderQr().solve(b); //求解方程Ax=b std::cout << "The solution of Ax=b is:\n" << x << std::endl; return 0; } 以上代码生成了一个3x3的矩阵A和一个3维向量b,并使用Eigen3中的函数求解了方程Ax=b。可以看出,在使用Eigen3时,只要传入合适的参数即可完成大部分常见的数学运算,大大提高了编程效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值