目前我正在使用gfortran 6.1在mac上编译fortran95源代码。我想知道我是否可以使用相同的FORTRAN 77源代码。如果没有,有什么建议吗?
答案 0 :(得分:3)
您没有提到在编译过程中遇到的错误。见this link。具体做法是:
-std=*std*
其中 std 可能是'f95','f2003','f2008','gnu'或'legacy'之一。
std的默认值是'gnu'。从同一页面: “遗留”值是等效的,但没有过时扩展的警告,并且可能对旧的非标准程序有用。 '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
假设返回:/ path / to / ld。然后取出输出并执行
file /path/to/ld
您可以将两个命令的输出发布为评论吗?
答案 1 :(得分:1)
如果我使用
,它的工作原理gfortran old_fortran.f -o a.out