我正在尝试编译一个使用 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
的文件
最佳答案
正如其他评论已经表明的那样,您的系统具有 LAPACK 的 ATLAS 实现。库链接的正确顺序(对于 ATLAS 的非线程版本)将是:
-llapack -lf77blas -lcblas -latlas
另请注意,您的 Fortran 代码似乎还包含来自 NAG 库 (x04cef) 的例程,因此您还必须链接 NAG 库。
关于compilation - 链接 lapack 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658916/