问题描述
在ubutun中编译c++时报错:
fatal error: Eigen/Core: 没有那个文件或目录。
原因分析:
Eigen3库是一个用于线性代数运算的C++模板库,它提供了矩阵、向量、数组等数据结构以及各种线性代数运算的函数和方法。Eigen3支持线性代数、矩阵和矢量运算、数值分析及其相关的算法,是一个高层次的C++库,有效支持复杂的数学运算。它是一个开源库,从3.1.1版本开始遵从MPL2许可,以源代码的形式提供给用户,只需将其代码包含在自己的程序中即可使用,无需链接动态链接库(DLL),也没有任何除iostream以外的依赖项。
Eigen3库因其高效性和灵活性,被广泛应用于各种需要进行矩阵和向量操作的领域,如机器学习、图像处理、物理模拟等。在机器学习中,Eigen3库提供的高效函数可以极大地提高矩阵和向量的乘法、转置、求逆等操作的性能;在图像处理中,它可以方便地进行图像的滤波、变换、特征提取等操作;在物理模拟中,它可以大大提高物理模拟的计算速度和精度。
可能的原因:
(1)没有安装eigen3库。
(2)CMakeList没有包含eigen3的头文件。
解决方案:
1.首先打开终端,通过以下命令检查ubutun是否安装eigen3库。
pkg-config --modversion eigen3
如果安装了,会有版本号。
如果没安装,通过以下命令安装。
sudo apt-get install libeigen3-dev
2.安装好eigen3库或者已经安装了eigen3库,仍然编译报错,检查CMakeList是否包含了eigen3的头文件(include_directories(“/usr/include/eigen3”))。
3.添加了头文件仍然报错,终端执行以下命令将eigen3库映射到/usr/include 路径。
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
注意eigen3 库默认安装在 /usr/include/eigen3/Eigen 路径。