目前,我正在使用gfortran 6.1在Mac上编译Fortran95源代码。我想知道是否可以使用相同的方式运行FORTRAN 77源代码。如果不能,有什么建议吗?
您没有提到在编译过程中遇到了什么错误。请参见此链接。具体而言:
-std=*std*
其中std可能是“f95”、“f2003”、“f2008”、“gnu”或“legacy”之一。默认值为“gnu”。从同一页中得知:“legacy”值相当于没有过时扩展的警告,对于旧的非标准程序可能有用。 “f95”、“f2003”和“f2008”值分别指定严格遵守Fortran 95、Fortran 2003和Fortran 2008标准;所有超出相关语言标准的扩展都会报错,并针对在后续标准中被允许但已过时的Fortran 77功能发出警告。
例如,如果要编译一个名为old_fortran.f77
的文件,则可以执行以下操作:
gfortran -std=legacy old_fortran.f77 -o a.out
使用-o a.out
选项可以生成可执行文件a.out
。我以前成功地使用过这个编译器的旧版本,而没有使用这个选项。不过你可能会得到一些警告。首先尝试:
gfortran old_fortran.f77 -o a.out
编辑:在查看下面OP的评论后,似乎涉及到了不同的问题。可能是你的安装有问题(这是可能的),或者你的LD_LIBRARY_PATH
出了问题。我认为你的链接器(ld)在你的路径中是32位的,而编译器创建的目标文件可能是64位的。只是一个猜想。你能发布以下输出吗?
which ld
file /path/to/ld
如果我使用以下命令
gfortran old_fortran.f -o a.out
它是有效的。