Eigen库是一款线性代数库,很多开源的工程中采用了不同的版本,因此需要对电脑中的Eigen库进行管理,本文总结对多版本Eigen库的管理方法,方便版本切换。
一、直接安装
最快的安装方式是通过apt安装,这种方式会把eigen库安装在/usr/include/文件夹中。首先更新软件目录,其次安装Eigen库。
sudo apt update
sudo apt install libeigen3-dev
这种方式只可以下载最新版的Eigen库,而不同版本的Eigen库间区别较大,新版不一定兼容旧版本,并且该种方式不方便多版本管理,个人建议采用接下来的源码安装方法。
二、源码安装
进入Eigen官网下载所需要的版本源码,本人习惯下载.tar.gz格式的压缩包到主目录下,但任意目录均可(根目录除外),linux下一切皆文件,不用担心下载的东西太多影响系统运行的流畅度。
tar -zxvf eigen-3.3.9.tar.gz
创建一个名为eigen_output的文件夹,用来后面安装编译好的eigen库。当然这个文件夹可以是任意你喜欢的名字,并且要记住文件夹的位置,本人直接在主目录下创建,解压下载的源码。
进入解压后的Eigen源码,开始编译并安装到之前准备的eigen_output文件夹,DCMAKE_INSTALL_PREFIX用于指定安装路径,不然会默认安装到/usr/local/include/路径。
mkdir ~/eigen_output
cd ~/eigen--3.3.9
mkdir build && cd build
camke -DCMAKE_INSTALL_PREFIX="~/eigen_output" ..
make
make install
在eigen_output文件夹中会生成两个文件夹——include和share,目录结构如下,接下来进行关键步骤,将生成的文件复制到他们该去的位置。
- 进入eigen_output文件夹中,将include中eigen3的文件夹改名为eigen339,并将eigen339文件夹复制到/usr/local/include/下,该文件夹是Eigen库文件,不能随意修改里面的文件;
cd ~/eigen_output
mv ./include/eigen3 ./include/eigen339
sudo cp -r ./include/eigen339 /usr/local/include/
- 将share中的eigen3的文件夹改名为eigen339,并将eigen339文件夹复制到/usr/local/share下,该文件夹中保存有cmake相关的配置,为了Cmake工具找到eigen包,同样不能随意修改;
mv ./share/eigen3 ./share/eigen339
sudo cp -r ./share/eigen339 /usr/local/share/
- 将share/pkgconfig中的eigen3.pc文件复制到/usr/local/share/pkgconfig中,这个文件是包(库)配置文件,编译器在编译时会根据这个文件寻找所需要的库。这个文件只需要复制一次,后面在多版本管理环节需要修改。
sudo cp ./share/pkgconfig/eigen3.pc /usr/local/share/pkgconfig
到此,完成了Eigen3.3.9版本的安装,后面可以继续安装其余版本的Eigen库。
三、多版本管理
通过源码安装的方式已经完成了多版本的Eigen库的安装,接下来进行版本管理。在源码安装中,我们将所需要的文件复制到指定目录,并且还将文件夹更改了名字,最终效果如下。
如果需要Eigen3.3.9版本,就将/usr/local/include和/usr/local/share目录中的eigen339文件夹改为eigen3。
sudo mv /usr/local/include/eigen339 /usr/local/include/eigen3
sudo mv /usr/local/share/eigen339 /usr/local/share/eigen3
之后对eigen3.pc进行修改,将version设置为所需要的3.3.9版本。
到此完成了Eigen库的多版本管理。
参考文献
[1]. Linux系统下,如何安装多个不同版本的Eigen库且灵活调用呢?
[2]. Eigen3不同版本切换