背景

        相比于Intel Math Kernel Library(Intel MKL)库,armadillo线性代数库更容易安装和配置,使用逻辑也跟更接近matlab,因此更容易上手、更适合刚接触科学计算的初学者。

        本文旨在介绍在ubuntu系统中安装armadillo库(基于cmake)。

下载安装包

        进入armadillo库官网(从window或ubuntu系统中进入都行)下载最新版的安装包,官网先不要关闭,后面要安装依赖库:

【官网】Armadillo: C++ library for linear algebra & scientific computing (sourceforge.net)

单击进行下载
下载完成

安装依赖库

        (1)在官网上找到需要提前安装的依赖库,需要先通过指令安装依赖库,再通过cmake编译并安装armadillo:

红框中的就是需要安装的依赖库

        (2)按“ctrl+alt+t”打开终端,输入sudo apt install libopenblas-dev liblapack-dev libarpack2-dev libsuperlu-dev,输入密码,按下enter键,提示出现后输入y,按下enter键: 

输入y并按下enter,表示继续执行

依赖库安装完毕

正式安装

         (1)在ubuntu系统中找到安装包(如果是在ubuntu系统中直接下载的,默认位置是/home/usrname/Downoads路径下),右键,点击解压("Extract Here"):

        (2)打开解压出的文件夹,再右键“在终端中打开(open in terminal)”: 

         (3)在弹出的终端(terminal)中输入"cmake .",按下enter,注意cmake和点之间有个空格,如果系统上尚未安装cmake,先输入sudo apt install cmake进行安装:

若尚未安装cmake,先sudo apt install cmake进行安装

         (4)cmake编译成功后再在当前路径的终端(就是刚刚输入cmake .的这个终端)中输入sudo make install,按下enter,如果没有超级用户权限,直接make install也行:

        (5)如下图所示,执行完毕后若没有报错,即表示安装成功。之前解压出的文件夹可以直接删除,不影响之后对armadillo库的使用。【注】那个文件夹中还包含了几个armadillo库的使用案例,如有需要也可保留。 

安装完成

        本人的某台电脑在安装armadillo之前先安装了Intel MKL库,然后在执行上述sudo make install过程中报错:“/usr/bin/ld: cannot find -lmkl_rt: No such file or directory”,这时需要将缺失的跟mkl有关的库文件拷贝到/lib/x86_64-linux-gnu文件夹下。

cd /opt/intel/oneapi/mkl/2023.2.0/lib/intel64   
#打开oneapi的安装文件夹,intel64中是64位操作系统的相关文件
#默认的安装位置是在/opt文件夹下,非默认位置安装需执行:
#cd {yourPath}/intel/oneapi/mkl/2023.2.0/lib/intel64   

sudo cp -l ./libmkl_rt.so /lib/x86_64-linux-gnu
sudo cp -l ./libmkl_rt.so.2 /lib/x86_64-linux-gnu
#注意上面两行代码在so和so.2后面都有一个空格

        做完上述更改后,回到解压出的文件夹下,先删除已经产生的CmakeCache.txt文件(如有),再"cmake ."(cmake+空格+点),再"sudo make install". 

安装成功后的测试

       (1) 随便找一个路径(比如在桌面上右键再点“open in terminal”)创建一个test.cpp:

        (2)打开test.cpp并写入测试代码(生成一个3*5的随机数矩阵并打印到显示器上)。在test.cpp路径下在终端中输入vim test.cpp打开。打开后按i键进入输入模式,编写完毕后按esc键、再输入: ,再输入wq!进行保存并退出(w: write; q: quit; !: 强制执行)。

 (3)通过"-larmadillo"将源文件(.cpp文件)链接到armadillo库文件并进行编译(g++ test.cpp -o [输出的可执行文件的名称] -larmadillo),生成可执行文件之后进行执行:

成功打印了一个3*5的随机数矩阵

 (4)验证性测试通过!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐