【问题标题】:Can't compile Fortran code无法编译 Fortran 代码
【发布时间】: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


【解决方案1】:

我使用 Windows 7(64 位)和 mingw 编译器使它工作。

试试:

~>gfortran circle.f -o circle.exe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 2016-04-10
    • 2016-07-15
    • 2015-02-15
    相关资源
    最近更新 更多