1

我通过以下方式安装了 atlas、blas 和 lapack x86_64 软件包

yum install atlas.x86_64 blas.x86_64 lapack.x86_64

在安装共享库但在编译和链接时遇到问题的 Redhat 6.6 (ii) 发行版上。例如,如果我尝试编译最小的工作示例:

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

使用

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

编译器找不到库,我收到错误消息:

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

我对 fortran 和 linux 比较陌生,所以我可能遗漏了一些明显的东西。我从源代码编译库也失败了。

非常感谢指针。

4

1 回答 1

3

您需要安装*-devel这些软件包的版本。

例如,我使用了一个虚拟的 Fedora 17 系统:

$ 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)
于 2015-01-21T13:21:24.447 回答