1、先从网上把lapack包下载下来,lapack包的下载路径:http://www.netlib.org/lapack/#_lapack_version_3_10_0_2
【这里面下载的是lapack3.5版本的】
【lapack包里已经包含了blas包了,无需重新下载】
在这里插入图片描述
2、首先安装下gfortran编译器:sudo apt-get install gfortran
在这里插入图片描述
3、解压lapack-3.5.0.tgz 压缩包
tar -zxvf lapack-3.5.0.tgz

4、cd进入解压后的目录lapack-3.5.0
在make之前,需要先创建一个make.inc文件,可以直接根据make.inc.example创建
cp make.inc.example make.inc

5、如果是使用Ubuntu+gfortran,则无须更改make.inc里的内容,否则需要根据系统环境和编译器修改文件里对应的选项。LAPACK依赖BLAS,因此在编译LAPACK前需要提供BLAS包,所幸LAPACK里已经集成了BLAS包,但默认并不编译它。要想编译LAPACK前先编译BLAS,需要修改一下makefile:

gedit Makefile
  光标定位到第11行并将内容改为:
lib: blaslib lapacklib tmglib
  保存退出,然后开始make整个工程。
在这里插入图片描述
6、make 编译完成

7、cd lapack目录下,再次进行make操作!~【重要】

8、两处都make成功后,会在目录lapack-3.5.0下生成 liblapack.a、liblapacke.a、librefblas.a、libtmglib.a 这个4个静态库文件
在这里插入图片描述

9、把这4个静态库文件,拷贝到/usr/local/lib/目录下:sudo cp *.a /usr/local/lib/

10、把lapack目录下的include里的头文件拷贝到/usr/local/include/目录下:
cd lapack/inclue
sudo cp *.h /usr/local/include/
cd -

11、至此lapack 和 blas已经安装好了!

12、测试lapack和blas包是否安装成功!~
测试代码(test.c)如下:

#include <stdio.h>
#include <lapacke.h>
 
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<n;i++)
   {
      for(j=0;j<nrhs;j++)
      {
         printf("%lf ",b[i+ldb*j]);
      }
      printf("\n");
   }
   return(info);
}

编译test.c gcc test.c -o test -llapacke -llapack -lrefblas -lgfortran -lm -w

执行:./test
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐