簡體   English   中英

64位服務器上的32位Fortran

[英]32-bit Fortran on 64-bit Server

我有一個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無法找到軟件包
  • 手動安裝libgfortran的32位.deb軟件包(由於錯誤的體系結構錯誤而失敗)
  • 安裝getlibs並確定其依賴項
  • 運行ldconfig -v/usr/lib/x86_64-linux-gnu:下找到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,但是目前我沒有其他可以阻止我這樣做的東西。

你們中有人對我可以做的其他事情有想法嗎? 謝謝。

嘗試安裝軟件包lib32gfortran3 ,因為這將安裝libgfortran庫的32位版本。 在啟動程序之前,您最終可能需要設置LD_LIBRARY_PATH="/usr/lib32:"但是如果沒有此設置,它可能也會運行。

我不確定這是我的疏忽還是其他方面的疏忽; 但是這是修復所有問題的兩個步驟:

  1. 在將安裝GNU Fortran編譯器的64位計算機上運行sudo apt-get install gfortran
  2. 使用gfortran在64位計算機上重新編譯應用程序。

奇怪的是,在這一點上,我仍然無法僅將應用程序文件復制/粘貼到其他64位計算機上並運行它。 相反,即使我不打算編譯任何內容,我也必須先在每台計算機上分別安裝gfortran。 安裝gfortran之后,無論在哪里編譯,該應用程序都將運行。我想libgfortran3必須是某些依賴項...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM