回 帖 发 新 帖 刷新版面

主题:linux下安装lapack及应用

http://bbs.pfan.cn/showbbs.asp?id=242326&read=my

这是从论坛上看到的帖子,讲述了ifort编辑器怎么安装lapack以及应用的。我用的是gfortran,linux系统,我是这么安装的:

make.inc

FORTRAN =gfortran

OPTS=-O2

DRVOPTS=$(OPTS)

NOOPT=-O0

LOADER=gfortran

LOADOPTS=

 

TIMER=INT_ETIME_

 

CC=GCC

CFLAGS=-O3

 

ARCH=ar

ARCHFLAGS=cr

RANLIB=ranlib

 

BLASLIB=../../librefblas.a

LAPACKLIB=liblapack.a

TMGLIB=libtmglib.a

LAPACKELIB=liblapacke.a

 

这样设置有问题吗?

make一下,/lapack/lapack-3.4.2产生几个文件:

liblapack.a  libtmglib.a

然后我想用装好的lapack编译一个程序:

        program test_sgesv
        implicit none
        real :: a(3,3),b(3)
       integer :: v(3),iflag
       external sgesv
       a=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.0]
       print *,'a=',a
       print *,'b=',b
       call sgesv(3,1,a,3,v,b,3,iflag)
       print *,'solve=',b
       end program test_sgesv

把这个程序ceshi.f放在/lapack/目录下,然后用

gfortran ceshi.f -o 22

结果显示sgesv这个子程序找不到,应该是库文件没安装好。

看帖子:http://bbs.pfan.cn/post-242326.html

f2003同学说:将编译好的文件拷贝到/usr/local/lib或者/usr/lib就可以了,。这个文件夹根本找不到。如果编译程序是不是需要在

程序开头加个语句,或者在编译的时候加个语句,好知道是调用哪里的库函数啊?

 

回复列表 (共2个回复)

沙发

lapack看着它里面的说明改好make.inc文件就可以编译了.
不过你直接用MKL不可以吗? 还有并行库.

看到楼主的后面
"把这个程序ceshi.f放在/lapack/目录下,然后用
gfortran ceshi.f -o 22"

看来楼主是不会编译并连接库. 查查 -L 和 -l 的用法吧. 或者买一本linux的书看看是怎么编译的.(跟计算机语言无关)

板凳

多谢,lapack已经装好了,在弄lapack呢

我来回复

您尚未登录,请登录后再回复。点此登录或注册