2010-07-29 72 views
2

我有一個Fortran程序,我可以在所有三種操作系統(它們是i386,ia64和x86_64系統)上使用f77,f95或ifort進行編譯。但是,我希望能夠僅編譯兩種類型的可執行文件,以便我可以共享程序而不是代碼。當我在其中一臺計算機上編譯並嘗試在另一臺計算機上運行編譯後的二進制文件時,我收到錯誤消息cannot execute binary file。有誰知道我能做些什麼嗎?在多個系統上編譯Fortran

+0

你指的是哪種操作系統? – 2010-07-29 09:31:23

+0

Linux machine1 2.6.18-164.6.1.el5#1 SMP Tue Nov Nov 3 16:12:36 EST 2009 x86_64 x86_64 x86_64 GNU/Linux Linux machine2 2.6.5-7.276-sn2#1 SMP Mon Jul 24 10:45 :31 UTC 2006 ia64 ia64 ia64 GNU/Linux Linux machine3 2.6.9-34.ELsmp#1 SMP Fri Feb 24 16:54:53 EST 2006 i686 i686 i386 GNU/Linux – fizboz 2010-07-29 09:38:44

回答

4

如果您希望機器本機運行它們,則不能這樣做。你有三種不同的體系結構,所以你需要三種不同的二進制文件。

但是,x86_64(更常見的稱爲amd64)確實有能力運行i386代碼,但性能稍有降低。所以,如果你願意放棄64位內存,理論上你可以放棄amd64二進制文件,只使用該機器上的i386文件。您需要在機器上安裝i386仿真環境才能完成此項工作。

有可能ia64支持類似的東西;我不知道ia64。

+0

哇,我以爲我已經嘗試了所有的可能性,但沒有嘗試一個顯然。 i386代碼在x86_64上確實有效。我想我必須爲ia64做一個單獨的。 – fizboz 2010-07-29 11:46:46