相关链接: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 AlgebraSubprograms,即基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序。
BLAS的源码可以从 http://www.netlib.org/blas/ 下载,但实际上LAPACK中已经包含了BLAS。
1.确保机器上安装了gfortran编译器,如果没有安装的话,可以使用sudo apt-get installgfortran
2.下载blas, cblas, lapack 源代码, 这些源码都可以在http://www.netlib.org 上找到,下载并解压。这里提供我安装时的下载链接http://www.netlib.org/blas/blas.tgzhttp://www.netlib.org/blas/blast-forum/cblas.tgzhttp://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就成功安装到你的电脑上了。