4

我正在尝试编译一个使用 lapack 的程序。

首先,我通过在此链接上使用“sudo apt-get install”安装所有软件包来安装 lapack: https ://launchpad.net/ubuntu/precise/+source/lapack

我正在尝试编译此页面上的代码:http: //www.nag.com/lapack-ex/examples/source/dgbsv-ex.f

我从以下网站得到这个程序:http: //www.nag.com/lapack-ex/lapack-ex.html

我试图通过键入来编译程序

$gfortran dbgsv-ex.f -llapack -lblas

进入终端

我收到一堆错误消息,所有的形式

/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/liblapack.so: undefined reference to         
`ATL_strsv'

即错误消息以 . 结尾ATL_xxxx。另请注意,当我查看我的文件时,/usr/lib/ 我看到一个名为liblapack.so

4

1 回答 1

1

正如其他评论已经表明的那样,您的系统具有 LAPACK 的 ATLAS 实现。库链接的正确顺序(对于 ATLAS 的非线程版本)将是:

-llapack -lf77blas -lcblas -latlas

另请注意,您的 Fortran 代码似乎还包含来自 NAG 库 (x04cef) 的例程,因此您还必须链接 NAG 库。

于 2013-02-04T06:59:15.677 回答