相关链接:http://blog.csdn.net/mlnotes/article/details/9676269

http://blog.sina.com.cn/s/blog_5f350c9601014ejc.html

这两个数学库是很多linux科学计算软件需要调用的,所以经常会用到。

LAPACK,其名为Linear Algebra PACKage的缩写,是一以Fortran编程语言写就,用于数值计算的函式集。

LAPACK提供了丰富的工具函式,可用于诸如解多元线性方程式、线性系统方程组的最小平方解、计算特征向量、用于计算矩阵QR分解的Householder转换、以及奇异值分解等问题。

LAPACK的源码可以从http://www.netlib.org/lapack/处下载,BLAS也包含在其中。

BLAS,全称Basic Linear Algebra

Subprograms,即基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序。

BLAS的源码可以从http://www.netlib.org/blas/下载,但实际上LAPACK中已经包含了BLAS。

1.确保机器上安装了gfortran编译器,如果没有安装的话,可以使用sudo apt-get install

gfortran

2.下载blas, cblas, lapack 源代码, 这些源码都可以在

http://www.netlib.org 上找到,下载并解压。这里提供我安装时的下载链接

http://www.netlib.org/blas/blas.tgz

http://www.netlib.org/blas/blast-forum/cblas.tgz

http://www.netlib.org/lapack/lapack-3.4.2.tgz,解压之后会有三个文件夹,BLAS,

CBLAS, lapack-3.4.2

3.这里就是具体的编译步骤

1)编译blas, 进入BLAS文件夹,执行以下几条命令

gfortran -c

-O3 *.f  # 编译所有的 .f 文件,生成 .o文件

ar rv libblas.a *.o  # 链接所有的 .o文件,生成

.a 文件

su cp libblas.a /usr/local/lib  #

将库文件复制到系统库目录

2)编译cblas, 进入CBLAS文件夹,首先根据你自己的计算机平台,将目录下某个 Makefile.XXX

复制为 Makefile.in , XXX表示计算机的平台,如果是Linux,那么就将Makefile.LINUX 复制为

Makefile.in,然后执行以下命令

cp ../BLAS/libblas.a

testing  # 将上一步编译成功的 libblas.a

复制到 CBLAS目录下的testing子目录

make # 编译所有的目录

sudo cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a #

将库文件复制到系统库目录下

3)编译

lapack以及lapacke,这一步比较麻烦,首先当然是进入lapack-3.4.2文件夹,然后根据平台的特点,将INSTALL目录下对应的make.inc.XXX

复制一份到 lapack-3.4.2目录下,并命名为make.inc, 这里我复制的是

INSTALL/make.inc.gfortran,因为我这里用的是gfortran编译器。

修改lapack-3.4.2/Makefile,

因为lapack以来于blas库,所以需要做如下修改

#lib: lapacklib tmglib

lib: blaslib variants lapacklig tmglib

make # 编译所有的lapack文件

cd lapacke # 进入lapacke 文件夹,这个文件夹包含lapack的C语言接口文件

make # 编译lapacke

cp include/*.h /usr/local/include

#将lapacke的头文件复制到系统头文件目录

cd .. #返回到 lapack-3.4.2 目录

cp *.a /usr/local/lib # 将生成的所有库文件复制到系统库目录

这里的头文件包括: lapacke.h, lapacke_config.h, lapacke_mangling.h,

lapacke_mangling_with_flags.h lapacke_utils.h

生成的库文件包括:liblapack.a, liblapacke.a, librefblas.a,

libtmglib.a

至此cblas和lapack就成功安装到你的电脑上了。

测试:

可以到 LAPACKE 找测试代码,这里是lapacke的官方文档,比如以下代码:

#include

#include

int main (int argc, const char * argv[])

{

double a[5*3] =

{1,2,3,4,5,1,3,5,2,4,1,4,2,5,3};

double b[5*2] =

{-10,12,14,16,18,-3,14,12,16,16};

lapack_int

info,m,n,lda,ldb,nrhs;

int i,j;

m = 5;

n = 3;

nrhs = 2;

lda = 5;

ldb = 5;

info =

LAPACKE_dgels(LAPACK_COL_MAJOR,'N',m,n,nrhs,a,lda,b,ldb);

for(i=0;i

{

for(j=0;j

{

printf("%lf ",b[i+ldb*j]);

}

printf("\n");

}

return(info);

}

将上诉代码保存为test.c,编译时,别忘了使用gfortran,此外,还需要连接用到的库,编译上面的代码,应使用如下命令:

gfortran test.c -llapacke

-llapack -lrefblas

如果能正常编译,即表示安装成功。如果要了解这段代码的具体含义,可以到 LAPACKE

查看

Linux Blas安装方法,科研1-linux下安装blas和lapack相关推荐

  1. 服务器2003系统U盘安装方法,u盘winpe下安装windows server 2003详细教程

    最近,很多用户都表示不知道如何在u盘winpe下安装windows server 2003,今天,U大侠小编就针对大家的这个困扰,给大家介绍下u盘winpe下安装windows server 2003 ...

  2. Linux(CentOS 7_x64位)系统下安装RDkit(修正)

    Linux(CentOS 7_x64位)系统下安装RDkit(修正) 一.RDKit简介 Linux(CentOS 7_x64位)系统下安装RDkit点击打开链接 前面写的一篇CentOS 7下安装R ...

  3. SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境)

    SimpleScalar的安装方法(Red Hat Linux 9.0,gcc3.2.2环境) 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究 ...

  4. linux 安装jre和jdk,Ubuntu下安装JDK/JRE及问题的解决

    由于license的原因,Ubuntu的发行版中不在包含Oracle(Sun)Java 6了,取而代之的是OpenJDK,这是Ubuntu默认的java版本,也是最易于安装. 但是偏偏有些应用特意强调 ...

  5. mysql几种安装方法_mysql的三种安装方式(详细)

    安装MySQL的方式常见的有三种: rpm包形式 通用二进制形式 源码编译 1,rpm包形式 (1) 操作系统发行商提供的 (2) MySQL官方提供的(版本更新,修复了更多常见BUG)www.mys ...

  6. 安装VM及在VM下安装Ghost XP系统图文教程,附PQ分区及VM共享教程 z

    安装VM及在VM下安装Ghost XP系统图文教程,附PQ分区及VM共享教程 z http://blog.sina.com.cn/s/blog_58dae96501000710.html 第一章:安装 ...

  7. 终端linux输入法安装程序,在Ubuntu系统下安装百度输入法Linux版的方法

    本文介绍在Ubuntu系统下安装百度输入法Linux版(也称为百度Linux输入法)的方法,以Ubuntu 18.04版本为例说明.说明:该输入法支持在Ubuntu 18.04.1810.1904.1 ...

  8. Linux图形界面的安装和卸载,在CentOS下安装和卸载图形化界面的方法

    虽然说text模式下系统占用资源小,但是有时候确实在图形界面下操作更方便,所以,学会在centos下安装图形界面是必须会的.图形界面有两个,可以任选其中一个,看你的更新源当中有哪个就安装哪个吧. ce ...

  9. linux安装 mysql-5.7.25_Linux 系统下安装 mysql5.7.25(glibc版)

    前言:经过一天半的折腾,终于把 mysql 5.7.25 版本安装上了 Amazon Linux AMI release 2017.09系统上,把能参考的博客几乎都看了一遍,终于发现这些细节问题,然而 ...

最新文章

  1. 网页性能测试---webpagetest
  2. php7比php5垃圾回收,PHP5和PHP7的垃圾回收机制有什么不同
  3. LDF文件丢失, 如何仅用MDF文件恢复数据库呢?
  4. DataGridView中获取与设置当前选中行以及SelectedRows和CurrentRow注意区分
  5. mysql二进制升级_MySQL二进制安装,升级,多实例部署
  6. lock和wait+signal
  7. myeclipse怎么创建jframe类_创建型-建造者模式
  8. LPeg 0 10的编译与使用
  9. 计算机视觉应用开发功能图,《计算机视觉算法:基于OpenCV的计算机应用开发》 —1.3 理解计算机图像...
  10. 7-55 求整数序列中出现次数最多的数 (15 分)
  11. [转]G++与GCC的区别
  12. 浏览器兼容性小记-DOM篇(二)
  13. 设计一个简易的有道词典
  14. php 禁止转换,php实现十进制、三十六进制转换的函数
  15. xjad一款不错的java反编译软件
  16. julia安装源_Julia 国内镜像安装实测
  17. 复杂网络中小世界网络的MATLAB实现
  18. conventional-changelog 参数含义
  19. IDEA运行web项目路径中去掉项目名称
  20. 微信动态二维码管理引流源码/微信活码/自动换群/微信朋友圈加群二维码

热门文章

  1. python中event key_event.keyCode用法及列表
  2. Storm-实时计算系统
  3. HDFS删除文件之后空间不释放,LINUX删除文件之后空间不释放
  4. maven中强大的scope标签详解
  5. RSA算法总结(数学知识/CTF题型)
  6. Oracle 主外键约束
  7. Python还能实现午夜凶铃的效果?这也太恐怖了吧。
  8. 公众号运营新规则,插入任意小程序不再需要关联
  9. 5.extend的详细用法
  10. [企管怪谈]企业怎么留住领导?