提示
不要使用:
sudo apt-get install libeigen3-dev
进行安装,其无法指定安装版本,默认安装的是eigen3.3.2的。
查看已安装版本:
gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h
或
gedit /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h
上图中表示安装版本为:eigen3.3.7
卸载先前版本:
sudo updatedb
locate eigen3
得到eigen库的位置
卸载:
sudo rm -rf /usr/include/eigen3 /usr/lib/cmake/eigen3 /usr/share/doc/libeigen3-dev /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
安装
下载压缩包链接: https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz
安装步骤:
# 解压
sudo tar -xzvf eigen-3.3.7.tar.gz
# 安装
cd eigen-3.3.7
mkdir build
cd build
sudo cmake ..
sudo make install
#安装后,头文件安装在/usr/local/include/eigen3/
# 移动头文件:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
- - 在很多程序中include时经常使用#include <Eigen/Dense>;否则系统无法默认搜索到,build时会找不到;
- - 或者直接修改CmakeLists.txt中eigen3库的路径,include_directories( "/usr/local/include/eigen3" ),但太麻烦!
测试:
touch eigen-test.cpp
gedit eigen-test.cpp
#include <iostream>
#include <Eigen/Dense>
//using Eigen::MatrixXd;
using namespace Eigen;
using namespace Eigen::internal;
using namespace Eigen::Architecture;
using namespace std;
int main()
{
cout<<"*******************1D-object****************"<<endl;
Vector4d v1;
v1<< 1,2,3,4;
cout<<"v1=\n"<<v1<<endl;
VectorXd v2(3);
v2<<1,2,3;
cout<<"v2=\n"<<v2<<endl;
Array4i v3;
v3<<1,2,3,4;
cout<<"v3=\n"<<v3<<endl;
ArrayXf v4(3);
v4<<1,2,3;
cout<<"v4=\n"<<v4<<endl;
}
g++ eigen-test.cpp -o eigen-test
./eigen-test