Compiler construction 使用gfortran编译错误

Compiler construction 使用gfortran编译错误,compiler-construction,gfortran,Compiler Construction,Gfortran,我正在努力学习fortran90/95,学习向量和并行科学计算。我正在使用Windows Vista 32位,我从下载了(我相信是这样的)适用于我的操作系统的gfortran编译器版本 为了测试它是否有效,我编写了一个hello world程序,如下所示: program testfortran write(*,*) 'Hello world!" end program testfortran 几乎是fortran教程中的逐字记录。当我试图编译它时: gfortran testfort

我正在努力学习fortran90/95,学习向量和并行科学计算。我正在使用Windows Vista 32位,我从下载了(我相信是这样的)适用于我的操作系统的gfortran编译器版本

为了测试它是否有效,我编写了一个hello world程序,如下所示:

program testfortran
    write(*,*) 'Hello world!"
end program testfortran
几乎是fortran教程中的逐字记录。当我试图编译它时:

gfortran testfortran.f90
我的回应如下:

C:\Program files\gfortran\bin/1d.exe: cannot open output file a.exe: Permission denied
collect2.exe: error: 1d returned 1 exit status

作为一名工程师,我几乎所有的编程经验都是使用解释语言,比如Matlab,而我对编译语言不是很熟悉。我不知道我是在犯一个愚蠢的错误还是什么。非常感谢您的帮助。

a.exe:Permission denied
消息意味着您没有写入当前目录的权限。testfortran.f90在哪个目录中?你能在同一个目录下创建一个文件吗(比如,
echo hello>hello.txt
)?你能在别的目录下试试吗?(不过,这似乎有些奇怪;如果您可以在该目录中创建
testfortran.f90
,那么您应该能够在同一目录中创建
a.exe
。)

或者,该目录中已经有一个
a.exe
文件,您没有覆盖该文件的权限。试一试

gfortran testfortran.f90 -o testfortran.exe

此外,您的错误消息涉及
1d.exe
。我希望它是链接器
ld.exe
。您的示例程序有不匹配的引号:
“你好,世界!”!“
。最好复制并粘贴源代码和任何错误消息,而不是重新键入它们。

很抱歉,从现在起,我将尝试复制代码,而不是重新键入代码。回答您的问题,gfortran当前位于目录C:\Program Files\gfortran\bin\中,我感觉有一个文件没有o位于此目录中,以便gfortran对其进行操作。但我显然没有对该目录的直接写入权限,所以我只是将.f90文件保存在其他地方,并手动将其移动到该目录中。@clioi:that
bin
目录仅适用于二进制文件(可执行文件)这是gfortran本身的一部分。您自己的工作文件应该在您自己的主目录下。我的答案解决了您的问题吗?是的,谢谢。我已经解决了这些问题。我为迟来的答复道歉。如果答案解决了您的问题,您可以接受它;如果您认为它是一个好的答案,您也可以投票。请参阅常见问题解答在我之前的评论中。