BLAS, ATLAS, LAPACK Shared library minimal example

2019-02-27 16:31发布

I installed atlas, blas and lapack x86_64 packages via

yum install atlas.x86_64 blas.x86_64 lapack.x86_64

on a Redhat 6.6 (ii) distro which installs a shared library but am having problems compiling and linking. For example, if I try to compile the minimal working example:

program main
  print *, 'hello world'
end program main

using

gfortran -L. main.f90 -llapack -lblas -o main

the compiler doesn't find the libraries and I get the error message:

/usr/bin/ld: cannot find -llapack
collect2: ld returned 1 exit status 

I'm relatively new to fortran and linux so I'm probably missing something obvious. I'm lost hours on compiling the libraries from source unsuccessfully too.

Pointers much appreciated.

1条回答
Evening l夕情丶
2楼-- · 2019-02-27 17:11

You need to install the *-devel versions of those packages.

E.g., with a virtual Fedora 17 system I had lying around:

$ cat main.f90
program main
  print *, 'hello world'
end program main
$ gfortran -L. main.f90 -llapack -lblas -o main
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
$ sudo yum install atlas.x86_64 blas.x86_64 lapack.x86_64
...
Installed:
  blas.x86_64 0:3.4.2-2.fc17            lapack.x86_64 0:3.4.2-2.fc17           

Complete!
$ gfortran -L. main.f90 -llapack -lblas -o main
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
$ sudo yum install atlas-devel.x86_64 blas-devel.x86_64 lapack-devel.x86_64
...
Installed:
  atlas-devel.x86_64 0:3.8.4-3.fc17       blas-devel.x86_64 0:3.4.2-2.fc17     
  lapack-devel.x86_64 0:3.4.2-2.fc17     

Complete!
$ gfortran -L. main.f90 -llapack -lblas -o main
(Success)
查看更多
登录 后发表回答