compilation - 链接 lapack 问题

标签 compilation makefile fortran lapack gfortran

我正在尝试编译一个使用 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/

相关文章:

compilation - 在编译字中编译匿名字

makefile - Make 中的默认规则

windows - mingw make 无法处理路径中的空格?

compilation - 编译器中的错误检测

c++ - 使用 scons 构建时无法使用 IAR arm 编译器进行编译...许可证检查失败

linux - 在 Linux 上编译 libtiff 4.0 beta 时遇到问题

linux - 共享库的 Makefile?

performance - 通过可简单并行的 DO 循环 (F90) 实现 MPI 加速

arrays - 是否有任何理由按第一项传递数组?

fortran - Fortran 中子例程的条件使用