7

我已经阅读了整个 ATLAS 安装指南,它说构建共享 (.so) 库所需要做的就是将--shared标志传递给配置脚本。但是,当我构建时,我的文件夹中.so出现的唯一文件是and ,尽管指南说应该还有其他六个:liblibsatlas.solibtatlas.so

libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so

安装后,由于缺少这些库,某些测试会失败。此外,FFPACK 在安装期间需要这些库。

有没有人遇到过这个?我做错了什么?

4

3 回答 3

5

根据我的经验,它比这要复杂得多,请参阅我们在https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/a/atlas.py上对 ATLAS 构建过程的 EasyBuild 实现。

我们需要:

  • 启用 -fPIC 编译器选项
  • 在“lib”目录中运行“make shared cshared ptshared cptshared”

我们甚至没有使用 --shared 进行配置,可能是因为它没有太多作用。

如果您想轻松构建 ATLAS(以及您将与之链接的任何内容),请查看 EasyBuild。

(免责声明:我是 EasyBuild 的开发人员)

于 2012-11-21T22:41:17.117 回答
0

首先,如果您错误地为配置指定了 --force-tids 标志,则不会构建并行库。要检查这一点,您可以运行 make ptcheck我对这里标志的规范有疑问

然后,如果我检查我生成的 ATLAS Makefile,它会显示“......仅当 atlas 构建到一个库时”,实际上只构建了两个“胖”库:libsatlas.so 和 libtatlas.so。

我想您可以将 FFPACK 与这些库链接起来,或者更改生成的 ATLAS Makefile 以包含您需要的目标(这不会太难,因为静态库可用)。

于 2012-11-23T09:54:12.173 回答
-1

我必须手动创建指向 .so.3 文件的链接。所以版本库文件存在,但不是 cmake 正在寻找的文件。

跑步

 sudo ln -s libatlas.so.3 libatlas.so
 sudo ln -s libcblas.so.3 libcblas.so
 sudo ln -s liblapack_atlas.so.3 

(我没有构建 cblas、atlas 或 lapack,而是使用 apt-get 安装它们。想知道为什么没有自动创建链接)。

于 2015-07-02T19:13:49.907 回答