Can';编译Fortran代码
我对Fortran非常陌生,我正在尝试编译用Fortran 77编写的代码。这是一个简单的代码,但不会在我的机器上编译(Windows7HomeBasic,64位)。我正在使用MinGW命令提示符,出现错误消息:Can';编译Fortran代码,fortran,fortran77,mingw-w64,Fortran,Fortran77,Mingw W64,我对Fortran非常陌生,我正在尝试编译用Fortran 77编写的代码。这是一个简单的代码,但不会在我的机器上编译(Windows7HomeBasic,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\
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位的机器。如何在我的机器上编译并获得合理的输出?我使用windows 7(64位)和mingw编译器使其工作 尝试:
你正在运行Win64的MinGW吗?是的,只是设置一下:TDM-GCC-64我想说你的编译器安装不正确。如果你是Fortran新手,为什么你要像1989年那样编程?Fortran 90/95/03在21世纪第二个十年的共同时代将是一个更好的平台。除了Fortran 77是一种古老的语言外,编译器g77也很古老且不受支持。我建议使用gfortran。。。它可以编译Fortran>=90和Fortran 77。如果您有理由使用FORTRAN 77(例如,旧代码),请将选项
-ffix form-ffix line length none
与gfortran一起使用。
~>gfortran circle.f -o circle.exe