【问题标题】:BLAS, ATLAS, LAPACK Shared library minimal exampleBLAS、ATLAS、LAPACK 共享库最小示例
【发布时间】:2015-09-25 16:01:33
【问题描述】:

我通过

安装了 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 比较陌生,所以我可能遗漏了一些明显的东西。我从源代码编译库也失败了。

非常感谢指针。

【问题讨论】:

  • 您使用哪个 linux 发行版? Centos,Fedora?哪个版本?
  • 尝试运行locate liblapack。您是否安装了库的 sttic 或共享版本?
  • @ctheo & @ Vladimir (i) 我正在使用 Redhat 6.6 (ii) yum install 创建了共享库(理想情况下我想编译静态库,但我在链接时遇到了类似的困难)跨度>

标签: fortran redhat lapack blas atlas


【解决方案1】:

您需要安装这些软件包的*-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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多