OrbSlam2环境配置
首先是Eigen库文件
Eigen只包含头文件,因此它不需要实现编译,只需要你include到你的项目,指定好Eigen的头文件路径,编译项目即可。而且跨平台,当然这是必须的。
我们为了替换版本,不用命令安装
下载Eigen库
https://github.com/eigenteam/eigen-git-mirror/releases?after=before-evaluators
这里选择3.1.3
因为OrbSlam2要求最低3.1以上版本,不选太新是害怕不兼容
解压后,改名
打开看下里面:
这里面有两个东西有用
Eigen和unsupported
我们把文件夹整体拷贝到 /usr/include
命令:
sudo cp -r ynh_eigen3 /usr/include
打开/usr/include看看
友情提示:改名命令,sudo mv ynh_eigen3 ynh_eigen3.1.3 mv后面是旧名字,最后是新名字
打开工程,导入头文件进行测试:
#include <iostream>
#include <ynh_eigen3.1.3/Eigen/Dense>
using Eigen::MatrixXd;
using namespace Eigen;
using namespace std;
int main()
{
std::cout << "Hello, World!" << std::endl;
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl;
MatrixXd M1 = MatrixXd::Random(3,3);
M1 = (M1 + MatrixXd::Constant(3,3,1.2)) * 50;
cout << "M1 =" << endl << M1 << endl;
VectorXd V1(3);
V1 << 1, 2, 3;
cout << "V1 =" << endl << V1 << endl;
cout << "M1 * V1 =" << endl << M1 * V1 << endl;
}
但是实际项目中,和别人对接,用自己名字太中二,
大家一般都是
#include <Eigen/Dense>
所以,下次我们复制的时候,不要整体,就把原文件下的Eigen放在 /usr/include
有些人会有unsupported模块的需求,所以直接也把,unsupported放入到Eigen,一起拷贝到 /usr/include