2011-03-31 45 views
0

道歉,如果这太幼稚或明显,但经过一段时间的搜索后,我不是100%确定我理解fortran/unix接口。我的不确定性是关于在将fortran程序编译为unix可执行文件时遇到的.src,.f,.o和.out文件的性质。谷歌这样的文件扩展名很难。但是如果你能告诉我,如果我有这个笔记本,我会很感激!关于Fortran的非常简单的问题 - UNIX编译

.src是源文件,其中包含有趣的fortran代码
.f是'主机语言特定的包含文件',它告诉你的fortran编译器有关源代码的一些信息。它有时是互动的。
---获得.o或.out文件后,可以扔掉.src和.f文件,是吗?
.o是编译但未链接fortran.f和.src文件的二进制对象文件。它包含相同的肉,但现在转换成机器特定的说明? .out是可执行的链接目标文件,它仍然依赖于.o文件并且是特定于计算机的。 .out文件扩展名不是真的需要,通常会被忽略吗?

我认为这涵盖了它。感谢您的任何更正或进一步的说明。

凯尔

+0

如果你指定了你正在使用的平台,它会有所帮助 - 什么样的Unix,什么编译器? – 2011-03-31 18:16:56

回答

1

没有,Fortran代码通常是.F或.F90的文件。更详细地说,如果Fortran源代码使用固定源表单(Fortran 77和更早版本的标准源表单)或使用免费源表单(来自Fortran 90),则通常具有扩展名.f。

5

这些文件扩展名都没有设置;正如你所说,他们甚至可以被省略,或者你可以自己设计。但是,如果您使用传统的方式,它会使生活变得更加轻松。

我从未见过.src扩展名。源文件所在的目录通常被称为./src;也许你已经看到了这一点。
通常,源代码(纯文本)位于扩展名为.f.f90的文件中。第一个表示固定源形式(“旧式”),第二个表示自由形式(“现代”)。某些编译器将大写文件扩展名(.F.F90)解释为源必须先通过预处理器运行。不要让编译器使用这些解释的扩展名,所有这些也可以通过向编译器传递标志来明确地声明/推翻。

源代码的编译生成目标文件中包含的目标代码(特定于计算机的指令),通常以.o作为扩展名(有时为.obj或其他)。 创建目标文件后,你确实可以扔掉你的源代码文件,但你不想这样做。你想修复你最可能发生的错误,并且保留它们以备将来对你的程序进行修改。

必须链接目标代码才能生成最终的可执行文件。如果你有多个目标文件,它们被捆绑在一起,包含你引用的任何系统/外部库代码。在Unix上,如果您未指定可执行文件的名称,则其默认名称通常为a.out。再次,您可以通过向编译器传递参数来否决此问题。

+0

我认为在一些项目中,如果在Fortran代码中使用预处理器或宏语言,则原始文件是.src;处理后的输出是以正常方式编译的.f文件。 – robince 2011-04-01 09:02:45

+0

@thrope:啊,从来没有听说过。感谢您的补充。 – eriktous 2011-04-01 10:25:46

1

获得.o或.out文件后,可以丢弃.src和.f文件,是吗?

号作为附录描述各种后缀约定的答案,我建议您删除Fortran源文件(.src.f文件在你的描述)。如果您想要修改程序,或者需要调查并修复运行可执行文件(a.out)时发现的错误,则需要这些文件。