目前,我正在使用gfortran6.1在mac上编译fortran95源代码。我想知道我是否可以用同样的方法运行FORTRAN 77源代码。如果没有,有什么建议吗?
发布于 2016-06-22 05:31:27
您没有提到在编译过程中遇到的错误。参见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你能将这两个命令的输出作为评论发布吗?
发布于 2016-07-22 04:56:03
如果我使用它,它会工作
gfortran old_fortran.f -o a.out
https://stackoverflow.com/questions/37954802
复制相似问题