64位服务器上的32位Fortran

时间:2013-02-08 15:19:52

标签: gcc ubuntu fortran 32bit-64bit

我有一个32位Fortran应用程序,我需要在64位ubuntu服务器上运行。我已经在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找不到包
  • 手动安装一个32位的.deb包libgfortran(失败了 关于错误架构的错误)
  • 安装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 --pendingdpkg --path-include=/usr/lib/x86_64-linux-gnu

如果可能的话,我想远离创建一个32位的chroot,但是在这一点上,如果还有其他任何事情可以阻止我不必这样做......

你们有没有想过我能做的其他事情?谢谢。

2 个答案:

答案 0 :(得分:0)

尝试安装包lib32gfortran3,因为这将安装32位版本的libgfortran库。在启动程序之前,您最终可能需要设置LD_LIBRARY_PATH="/usr/lib32:",但是如果没有它,它可能会运行。

答案 1 :(得分:0)

我不确定这是否是我本人或其他方面的疏忽;但这里有两个步骤解决了这个问题:

  1. 在将安装GNU Fortran编译器的64位计算机上运行sudo apt-get install gfortran
  2. 使用gfortran在64位计算机上重新编译应用程序。
  3. 奇怪的是,此时我还是无法将应用程序文件复制/粘贴到其他64位计算机并运行它。相反,我首先必须在每台机器上单独安装gfortran,即使我没有计划编译任何东西。一旦安装了gfortran,应用程序就会运行,无论它在哪里编译......我都认为libgfortran3一定是依赖...