lapack是以blas为基础的,所以安装lapack后,也会安装好blas。
之前在ubuntu下用新立得安装lapack,之后再安装phg时可以自动识别出BLAS/LAPACK库,而在centos下通过yum install 安装lapack后,phg在配置时不能识别出BLAS/LAPACK库,只能从LAPACK官网下载源码自己进行编译。
1>. 将源码解压至 /usr/local/src/ 中
2>. cd /usr/local/src/lapack-3.5.0
3>. 将make.inc.example 改名为 make.inc:cp make.inc.example make.inc
4>. 用gedit编辑make.inc: gedit make.inc
做如下修改:
. . . . . . . . .
FORTRAN = g77
OPTS = -funroll-all-loops -O3
DRVOPTS = $(OPTS)
NOOPT =
LOADER = g77
LOADOPTS =
. . . . . . . . .
修改为:(不过话说lapack-3.5.0版本的make.inc中内容就是 FORTRAN = gfortran 所以不用修改。。。)
. . . . . . . . .
FORTRAN = gfortran
OPTS = -funroll-all-loops -O3
DRVOPTS = $(OPTS)
NOOPT =
LOADER = gfortran
LOADOPTS =
. . . . . . . . .
保存。
5>. gedit Makefile
如果之前没安装blas,做如下修改:
include make.inc
all: lapack_install lib lapack_testing blas_testing
lib: lapacklib tmglib
#lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .
修改为:
include make.inc
all: lapack_install lib lapack_testing blas_testing
#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .
保存。
6>. make
此时可能会提示如下错误:
/bin/sh: ./testsecond: not found
/bin/sh: ./testdsecnd: not found
/bin/sh: ./testversion: not found
make: *** [lapack_install] 错误 127
解决方法如下
make.inc中的timer没有正确指定。
要看你的编译器把etime这个函数处理成intrinsic,还是external。
实在不行选none
7>. make之后会产生 liblapack.a, librefblas.a, libtmglib.a 3个静态链接库,复制这3个文件到 /usr/lib 和 /usr/local/lib并改名为 liblapack.a, libblas.a, libtmglib.a ,注意,这里一定要改名,当初我就是直接复制过去没改名,所以phg配置时一直不能识别 BLAS/LAPACK,当改完名后再配置就可以识别了。
参考了一篇帖子:http://bbs.pfan.cn/post-242326.html?page=3