1

64ビットのubuntuサーバーで実行する必要がある32ビットのFortranアプリケーションがあります。32ビットのubuntuマシンでアプリケーションを検証しましたが、正常に動作します。ただし、64ビットサーバーで実行すると、次のエラーが発生します。

error while loading shared libraries: libgfortran.so.3: cannot open shared object file: No such file or directory

これについていくつかの調査を行って、私は喜びなしで次のことを試みました:

  • sudo apt-get install libgfortran3:i386パッケージが見つかりません
  • libgfortranの32ビット.debパッケージを手動でインストールします(誤ったアーキテクチャに関するエラーで失敗しました)
  • getlibsをインストールして、依存関係を特定してもらいます
  • 下にldconfig -vある実行...libgfortran.so.3 -> libgfortran.so.3.0.0/usr/lib/x86_64-linux-gnu:
  • ...次に、パスをそのパスに変更してみますがLD_LIBRARY_PATH、何もしませんでした(ただし、ライブラリパスについて話し始めると、私の知識は非常に少なくなります...)
  • ia32-libsがインストールされているかどうかを確認します。
  • libgfortranを削除して再インストールしてから、実行dpkg --configure --pendingしてdpkg --path-include=/usr/lib/x86_64-linux-gnu

可能な限り32ビットのchrootを作成しないようにしたいのですが、現時点では、他に何かを行う必要がない場合は作成しません...

私にできることについて何か考えを持っている人はいますか?ありがとうございました。

4

2 に答える 2

1

パッケージをインストールしてみてくださいlib32gfortran3。32ビットバージョンのlibgfortranライブラリがインストールされます。プログラムを開始する前に、最終的に設定する必要があるかもしれませんがLD_LIBRARY_PATH="/usr/lib32:"、おそらくこれがなくても実行されます。

于 2013-02-08T15:41:06.483 に答える
0

これが私の側の見落としだったのか、それとも他の何かの見落としだったのかはわかりません。しかし、これがすべてを修正した2つのステップです。

  1. sudo apt-get install gfortranGNUFortranコンパイラをインストールする64ビットマシンで実行します
  2. gfortranを使用して、64ビットマシンでアプリケーションを再コンパイルします。

奇妙なことに、この時点では、アプリケーションファイルを他の64ビットマシンにコピーして貼り付けて実行することができませんでした。むしろ、何もコンパイルする予定がなかったとしても、最初に各マシンにgfortranを個別にインストールする必要がありました。gfortranがインストールされると、コンパイルされた場所に関係なく、アプリケーションが実行されます...libgfortran3は何らかの依存関係にあったに違いないと思います...

于 2013-02-08T16:29:51.067 に答える