Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C++库,包含了绝大部分矩阵算法;
Eigen一个重要特点是采用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用。之所以采用这种方式,是因为Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用,因此非常轻量而易于跨平台。
Eigen不依赖其他库。
Eigen源码地址:
github:https://gitlab.com/libeigen/eigen.git
gitee:https://gitee.com/Coxhuang/eigen.git
源代码路径:D:/ThirdParty/eigen/eigen_3.3.8
构建项目路径:D:/ThirdParty/eigen/eigen_3.3.8_build
| 名称 | 值 | 备注 |
|---|---|---|
| BUILD_TESTING | false | 减少编译时间 |
| CMAKE_INSTALL_PREFIX | path | 编译时生成的安装文件路径 |
步骤如下:
- 指定源码路径;
- 指定构建项目路径;
- 点击Configure;
- 按照2.2节表中的值进行设置;
- 再次点击Configure;
- 点击Generate,构建项目路径中将生成解决方案文件Eigen3.sln。
3. 打开解决方案并编译 3.1 编译解决方案点击Configure或Generate后,如果顺利,会出现Configuring done或Generating done。
点击Open Project(或者在2.3节步骤2中指定的构建项目路径中,找到生成的解决方案文件Eigen3.sln,通过Visual Studio打开),打开通过Cmake构建的项目;
选中ALL_BUILD项目,分别在Debug和Release模式下,重新生成解决方案。
如果将BUILD_TESTING选项置为false,该过程将很快,因为没有构建任何测试项目。
选中INSTALL项目,右击,重新生成,此时,将会在指定路径下(2.2节表中CMAKE_INSTALL_PREFIX选项的值)生成两个文件夹include和share。
注:以下通过属性表的方式进行环境配置。
- $(eigen)includeeigen3
$(eigen)(在系统环境变量中添加并设置)就是2.2节表中CMAKE_INSTALL_PREFIX选项的值。
#include#include int main() { Eigen::Matrix2d a; a << 1, 2, 3, 4; Eigen::MatrixXd b(2, 2); b << 2, 3, 1, 4; std::cout << "a + b =n" << a + b << std::endl; std::cout << "a - b =n" << a - b << std::endl; std::cout << "Doing a += b;" << std::endl; a += b; std::cout << "Now a =n" << a << std::endl; std::cout << "a^T= " << a.transpose() << std::endl; std::cout << "a*b= " << a * b << std::endl; Eigen::Vector3d v(1, 2, 3); Eigen::Vector3d w(1, 0, 0); std::cout << "-v + w - v =n" << -v + w - v << std::endl; std::cout << v << std::endl; std::cout << v.transpose() << std::endl; system("pause"); return 0; }



