【发布时间】:2013-12-28 22:58:16
【问题描述】:
我是 Fortran 的新手,我正在尝试编译用 Fortran 77 编写的代码。这是一个简单的代码,但无法在我的机器上编译(Windows 7 Home Basic,64 位)。我正在使用 MinGW 命令提示符并出现错误消息:
C:\fortran_project>g77 circle.f -o circle.exe
C:\Users\xx\AppData\Local\Temp\ccoPxaaa.s: Assembler messages:
C:\Users\xx\AppData\Local\Temp\ccoPxaaa.s:50: Error: invalid instruction suffix for `push'
C:\Users\xx\AppData\Local\Temp\ccoPxaaa.s:54: Error: invalid instruction suffix for `push'
etc....
这是我尝试编译的代码。它在 Fortran 77 中
program circle
real r, area
C This program reads a real number r and prints
C the area of a circle with radius r.
write (*,*) 'Give radius r:'
read (*,*) r
area = 3.14159*r*r
write (*,*) 'Area = ', area
stop
end
为什么会出错?我猜这是因为我使用的是 64 位机器。如何在我的机器上编译它并获得合理的输出?
【问题讨论】:
-
您是否正在为 Win64 运行 MinGW?
-
是的,只需设置它:TDM-GCC-64
-
我会说你的编译器没有正确安装
-
如果您是 Fortran 新手,为什么要像 1989 年那样编程? Fortran 90/95/03 在 21 世纪的第二个十年将是一个更好的平台。
-
除了 FORTRAN 77 是一种旧语言之外,编译器 g77 也很旧且不受支持。我建议使用 gfortran ...它可以编译 Fortran >=90 和 FORTRAN 77。如果您有理由使用 FORTRAN 77(例如遗留代码),请将选项
-ffixed-form -ffixed-line-length-none与 gfortran 一起使用。
标签: fortran fortran77 mingw-w64