我正在尝试编译一个使用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
答案 0 :(得分:1)
正如其他评论已经指出的那样,您的系统具有LAPACK的ATLAS实现。库链接的正确顺序(对于ATLAS的非线程版本)将是:
-llapack -lf77blas -lcblas -latlas
另请注意,您的Fortran代码似乎也包含NAG库(x04cef)中的例程,因此您还必须链接NAG库。