ubuntu(linux)环境下安装armadillo线性代数库

这篇具有很好参考价值的文章主要介绍了ubuntu(linux)环境下安装armadillo线性代数库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

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

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

下载安装包

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

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
单击进行下载
ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
下载完成

安装依赖库

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
红框中的就是需要安装的依赖库

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
输入y并按下enter,表示继续执行
ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
依赖库安装完毕

正式安装

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
若尚未安装cmake,先sudo apt install cmake进行安装

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
安装完成

        本人的某台电脑在安装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:

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵

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

ubuntu(linux)环境下安装armadillo线性代数库,linux,ubuntu,c++,线性代数,矩阵
成功打印了一个3*5的随机数矩阵

 (4)验证性测试通过!文章来源地址https://www.toymoban.com/news/detail-767062.html

到了这里,关于ubuntu(linux)环境下安装armadillo线性代数库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数的学习和整理15:线性代数的快速方法

       5  空间的同构 下面再谈谈同构。线性空间千千万,应如何研究呢?同构就是这样一个强大的概念,任何维数相同的线性空间之间是同构的,空间的维数是简单而深刻的,简单的自然数居然能够刻画空间最本质的性质。借助于同构,要研究任意一个n维线性空间,只要研究

    2024年02月11日
    浏览(60)
  • 线性代数 4 every one(线性代数学习资源分享)

            版权说明,以下我分享的都是一个名叫Kenji Hiranabe的日本学者,在github上分享的,关于Gilbert Strang教授所撰写的《Linear Algebra for Everyone》一书的总结,更像是一个非常精美的线性代数手册,欢迎大家下载收藏。如果我的的这篇分享文章中涉嫌侵犯版权,我会立即删

    2024年02月15日
    浏览(52)
  • 线性代数的学习和整理9:线性代数的本质(未完成)

    目录 1 相关英语词汇 1.1 元素 1.2 计算 1.3 特征 1.4 线性相关 1.5 各种矩阵 1.6 相关概念 2 可参考经典线性代数文档 2.1 学习资料 2.2 各种文章和视频 2.3 各种书 2.4 下图是网上找的思维导图 3 线性代数的本质 3.1 线性代数是第2代数学模型 一般的看法 大牛总结说法: 3.2   线性代

    2024年02月09日
    浏览(59)
  • 线性代数·关于线性相关和线性组合

    我本来对线性相关和线性组合的理解是,如果几个向量线性相关,那么等价于他们可以互相线性表示。但其实这是一个误区。 线性相关是对一组向量之间的关系而言的,这里面会存在极大线性无关组。极大线性无关组确定了一个空间,线性相关表示向量都落在这个空间里,会

    2024年02月12日
    浏览(52)
  • 线性代数(五) 线性空间

    《线性代数(三) 线性方程组向量空间》我通过解线性方程组的方式去理解线性空间。此章从另一个角度去理解 大家较熟悉的:平面直角坐标系是最常见的二维空间 空间由无穷多个坐标点组成 每个坐标点就是一个向量 反过来,也可说:2维空间,是由无穷多个2维向量构成 同样

    2024年02月11日
    浏览(45)
  • 线性代数(六) 线性变换

    《线性空间》定义了空间,这章节来研究空间与空间的关联性 函数是一个规则或映射,将一个集合中的每个元素(称为自变量)映射到另一个集合中的唯一元素(称为因变量)。 一般函数从 “A” 的每个元素指向 “B” 的一个函数 它不会有一个 “A” 的元素指向多于一个

    2024年02月09日
    浏览(50)
  • 线性代数(9):线性正交

            若一个非零向量组中的向量两两相交,则称该向量组为正交向量组;         由单个非零向量组成的向量组也为正交向量组 1.2.1 方法          证明两两相交的的方法就是计算向量的内积和是否为 0 ;  1.2.2           例:         有一向量组 α1 = ( 1,1,

    2024年02月05日
    浏览(65)
  • 线性代数——线性方程组

    学习高等数学和线性代数需要的初等数学知识 线性代数——行列式 线性代数——矩阵 线性代数——向量 线性代数——线性方程组 线性代数——特征值和特征向量 线性代数——二次型 本文大部分内容皆来自李永乐老师考研教材和视频课。 方程组 { a 11 x 1 + a 12 x 2 + ⋯ + a 1

    2024年02月16日
    浏览(56)
  • 线性代数的学习和整理2:线性代数的基础知识(整理ing)

    目录 1 写在前面的话 1.1 为什么要先总结一些EXCEL计算矩阵的工具性知识, 而不是一开始就从基础学起呢?  1.2 关于线性代数入门时的各种灵魂发问: 1.3 学习资料 2 什么是线性(关系)? 2.1 线性的到底是一种什么关系: 线性关系=正比例/正相关关系 ≠ 直线型关系 2.2 一次函数

    2024年02月14日
    浏览(69)
  • 线性代数(三) 线性方程组

    如何利用行列式,矩阵求解线性方程组。 用矩阵方程表示 齐次线性方程组:Ax=0; 非齐次线性方程组:Ax=b. 可以理解 齐次线性方程组 是特殊的 非齐次线性方程组 如何判断线性方程组的解 其中R(A)表示矩阵A的秩 B表示A的增广矩阵 n表示末知数个数 增广矩阵 矩阵的秩 秩r= 未知

    2024年02月13日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包