目前我正在使用gfortran 6.1在mac上编译fortran95源代码。我想知道是否可以使用相同的FORTRAN 77源代码运行。如果没有,有什么建议吗?Fortran 95编译器是否可以编译Fortran 77代码?
回答
您没有提到在编译过程中遇到的错误。见this link。具体做法是:
-std=*std*
其中STD可以是“f95的”,“F2003”,“F2008”,“GNU”,或“传统”中的一个。该
Default value for std is ‘gnu’. From the same page: The ‘legacy’ value is equivalent but without the warnings for obsolete extensions, and may be useful for old non-standard programs. The ‘f95’, ‘f2003’ and ‘f2008’ values specify strict conformance to the Fortran 95, Fortran 2003 and Fortran 2008 standards, respectively; errors are given for all extensions beyond the relevant language standard, and warnings are given for the Fortran 77 features that are permitted but obsolescent in later standards.
例如,如果你有一个文件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)是32位,并且由编译器创建的目标文件可能是64位。只是一种预感。你可以发布输出
which ld
假设返回:/ path/to/ld。然后采取该输出,并做
file /path/to/ld
你可以张贴这两个命令的输出作为评论?
谢谢。我对fortran编程非常陌生,所以现在不知道太多技术词汇。将等待更多细节。 – Vineetha
我试过两种方法,得到同样的错误。 ld:警告:忽略文件epi.f77,文件是针对不支持的文件格式构建的,而不是被链接的体系结构(x86_64):epi.f77 架构x86_64的未定义符号: “_main”,引用来自: 隐式条目/开始为主要可执行文件 ld:找不到架构x86_64的符号 collect2:错误:ld返回1退出状态 – Vineetha
尝试创建一个小的“Hello World”程序并编译它。如果成功,那么你在其他地方有问题。你能告诉我们你是如何编译epi.F77的吗? “file epi.F77”的输出是什么? – Jagte
- 1. 使用Fortran 77编译器编译Fortran IV代码
- 2. 在现代编译器中编译狡猾的Fortran 77代码
- 3. 编译FORTRAN IV或转换为FORTRAN 77?
- 4. Fortran编译器
- 5. 编译旧的fortran代码
- 6. 如何编译Fortran代码?
- 7. 什么是Fortran编译器?
- 8. 将Fortran 77转换为Fortran 95
- 9. 如何使用* .h文件编译此旧版FORTRAN 77代码?
- 10. 用ifort编译Fortran 77代码:libg2c缺失
- 11. 使用gfortran编译遗留fortran 77代码:%LOC()导致问题?
- 12. 与Cray公司的编译器编译OpenACC的Fortran代码
- 13. 编译Fortran程序和编译器/库
- 14. 是否有可能为iPad编译Fortran代码?
- 15. 如何安装Fortran编译器(gcc42-fortran)
- 16. FORTRAN编译错误
- 17. Fortran编译错误
- 18. 许可英特尔Fortran编译器
- 19. 无法配置MPICH。所选的Fortran 90编译程序gfortran不与选定的Fortran 77编译器gfortran
- 20. 为iPhone编译外部C++库(Octave)(Fortran编译器缺失?)
- 21. BLAS库的Fortran 77编译器设置不兼容
- 22. Fortran 90/95转换器软件到Fortran 77
- 23. 编译器是否只编译可以执行的代码?
- 24. fortran 77在95程序中的接口
- 25. Gnu Fortran编译器写入选项
- 26. gcc是否可以不编译代码?
- 27. 编译三个文件fortran 77“线太长”
- 28. 如何在Fortran 90/95中使用Fortran 77子例程?
- 29. 是否可以将Fortran编译器安装到闪存驱动器中?
- 30. 使用记事本++和英特尔编译器编译文件Fortran编译器
除了少数例外,有效的Fortran 77的方案是有效的Fortran 95程序。 Fortran 95程序写得非常糟糕。 – francescalus