收藏 分享(赏)

LAPACK安装和调试(包含C语言借口的安装).doc

上传人:精品资料 文档编号:11041679 上传时间:2020-02-05 格式:DOC 页数:4 大小:32KB
下载 相关 举报
LAPACK安装和调试(包含C语言借口的安装).doc_第1页
第1页 / 共4页
LAPACK安装和调试(包含C语言借口的安装).doc_第2页
第2页 / 共4页
LAPACK安装和调试(包含C语言借口的安装).doc_第3页
第3页 / 共4页
LAPACK安装和调试(包含C语言借口的安装).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Linux 环境下 Lapack 软件包的编译和使用 自行下载编译过程1. 从 netlab 下载最新版本的源代码2. 将源代码解压缩3. 编辑 make.inc 文件,进行一些系统相关的编译参数设置一些编译参数,PLAT 表示使用的平台,会接在生成 lib 库的名字中,原本是 _LINUX。FORTRAN 表示你使用的 fortran 编译器,根据自己安装的编译器来设置,我用的是 gfortran。OPTS 表示 编译时的优化程度,设置为 -O2 即可。LOADER 设置成和 FORTRAN 基本一样就可以了。确定生成目标如下,BLASLIB = http:/ = liblapack$(PL

2、AT).aTMGLIB = libtmglib$(PLAT).aEIGSRCLIB = libeigsrc$(PLAT).aLINSRCLIB = liblinsrc$(PLAT).a原来的这些库文件的名字前面没有 lib 的,这里加上。因为 linux 上库文件一般有前缀 lib 的,在链接的时候 -l 后面带的是库的名字,那个时候是不加 lib 的。如果已经编译生成了这些库,可以重命名,而不用重新编译。PLAT : 设置生成的库函数的后缀,比如 SUN, LINUX 之类的,当然也可以不设置;FORTRAN : 设置编译器,比如 g77, gfortran, ifort, g95 等等;(

3、我设置为FORTRAN = ifort -g)OPT:设置编译选项,根据具体的编译器和优化要求进行设置;LOADER : 设置成和 FORTRAN 一样就可以了;4. 编辑 Makefile找到 lib: 选项。然后设置需要编译的库函数如下#lib: lapacklib tmgliblib: blaslib lapacklib tmglib默认的情况是不编译 blas 库的。(除非事先编译好了 blas 库,否则应一起编译。)5. 编译和测试 Lapack.在源代码的根目录下输入 make 回车。然后 make 程序就会自动进行编译和测试。6. Lapack 函数的使用如果编译和测试顺利的话会

4、在源代码的根目录下生成三个文件 lapack_LINUX.a、blas_LINUX.a、tmglib_LINUX.a,其中 lapack_LINUX.a 和 blas_LINUX.a就是我们所需要的库函数。它们的使用有多种途径:方法 1: 将 lapack_LINUX.a 和 blas_LINUX.a 所在路径加入到 LD_LIBRARY_PATH 环境变量在命令行输入 echo $LD_LIBRARY_PATH,结果为/usr/lib/alliance/lib:/usr/lib/alliance/lib;输入 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/fe

5、ngwei.igg/lapack-3.2.1 输入 export LD_LIBRARY_PATH进入代码所在目录,输入 ifort test.f90 lapack_LINUX.a blas_LINUX.a编译生成 a.out 文件,命令行执行./a.out,输出结果。方法 2:首先,必须将 lapack_LINUX.a 和 blas_LINUX.a 库文件重命名为 liblapack_LINUX.a 和libblas_LINUX.a如以上两文件在/home/fengwei.igg/lapack-3.2.1 文件夹下,在命令行输入ifort test.f90 -L/home/fengwei.ig

6、g/lapack-3.2.1 -llapack_LINUX -lblas_LINUX编译生成 a.out 文件,命令行执行./a.out,输出结果。方法 3:把 lapack_LINUX.a 和 blas_LINUX.a 拷贝至代码所在目录,输入 ifort test.f90 lapack_LINUX.a blas_LINUX.a编译生成 a.out 文件,命令行执行./a.out,输出结果。使用 intel 商业 mkl 库调用 lapack如果安装了 intel 公司的 mkl 数据库,则里面包含了 lapack 库,简单的使用方法为在命令行输入:ifort test.f90 -L/opt

7、/intel/mkl/10.2.2.025/lib/32 -lmkl_lapack95 -lguide -lmkl_core -lmkl_intel -lmkl_intel_thread -lpthread如出现如下类似错误:error while loading shared libraries: libguide.so: cannot open shared object file: No such file or directory解决方法为将/opt/intel/mkl/10.2.2.025/lib/32 添加到 LD_LIBRARY_PATH,如方法 1.编译生成 a.out 文件,

8、命令行执行./a.out,输出结果。实例test.f90 源文件:program test_sgesvimplicit nonereal : a(3,3),b(3)integer : v(3),iflagexternal sgesva=reshape(2.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0,3,3)b=998.0,999.0,1000.0print *,a=,aprint *,b=,bcall sgesv(3,1,a,3,v,b,3,iflag)print *,solve=,bend program test_sgesv输出结果:a= 2.000000 0.00

9、00000E+00 0.0000000E+00 0.0000000E+00 3.000000 0.0000000E+00 0.0000000E+00 0.0000000E+00 4.000000 b= 998.0000 999.0000 1000.000 solve= 499.0000 333.0000 250.0000 LAPACKE 的安装从网站上下载 lapacke 的压缩包,就是 Standard C language APIs for LAPACK对应的压缩包,解压缩,查看 README 文件。同样地,需要修改 make.inc 文件,CC 表示使用的 C 程序编译器,改成 gcc,

10、LINKER 表示编译时要使用的连接器,前面几行注释提到了,之前编译 lapack.a 和 blas.a 用的什么 fortran 编译器,这里就用什么。那么改成 gfortran.LAPACKE 表示要生成的库文件的名字,类似的,改成 liblapacke.aLAPACKE 的编译需要之前生成的 lapack 库文件,所以 LIBS 这一行需要设置好。LIBS = $(LAPACK_PATH)/liblapack.a $(LAPACK_PATH)/libblas.a注意这里 liblapack.a 文件全名应该是 liblapack$(PATH).a,PATH 对应 LAPACK 文件 make.inc 的 PATH其中 LAPACK_PATH 就是 liblapack.a 所在的目录了。查看以下 Makefile,没什么需要修改的,可以直接 make,或者是 make lapacke, 不让它编译 test 的内容。然后就生成 liblapacke.a 了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报