2010-07-29 74 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