7

ATLAS インストール ガイド全体を読みましたが、共有 (.so) ライブラリを構築するために必要な--sharedのは、configure スクリプトにフラグを渡すことだけだと書かれています。ただし、ビルドすると、フォルダーに表示されるファイルは と のみですが.so、ガイドには他に6つあるはずだと書かれています。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」を実行します

configure に --shared を使用することさえしていません。

ATLAS (およびそれにリンクするもの) を問題なくビルドしたい場合は、EasyBuild を調べてください。

(免責事項: 私は EasyBuild の開発者です)

于 2012-11-21T22:41:17.117 に答える
0

まず、configure の --force-tids フラグを間違って指定した場合、並列ライブラリはビルドされません。これを確認するには、 make ptcheck を実行します。このフラグの仕様について質問があります ここ

次に、結果のATLAS Makefileを調べると、「...アトラスが1つのライブラリにビルドされている場合のみ」と表示され、実際にはlibsatlas.soとlibtatlas.soの2つの「太い」ライブラリのみが構築されます。

これらのライブラリに対して 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 に答える