Kyl*_*yle 0 fortran compilation
抱歉,如果这太天真或太明显但经过一段时间的搜索,我不是百分之百确定我理解fortran/unix接口.我的不确定性是关于在将fortran程序编译成unix可执行文件时遇到的.src,.f,然后.o和.out文件的性质.这样的谷歌文件扩展很难.但是,如果你能告诉我我是否有这样的话,我真的很感激!
.src是源文件,其中包含多余的fortran代码
.f是'主机语言特定包含文件',它告诉您的fortran编译器有关源代码的一些信息.它有时是互动的.
---获得.o或.out文件后,可以扔掉.src和.f文件,是吗?
.o是二进制目标文件,它来自编译但不链接fortran .f和.src文件.它包含相同的肉,但现在转换为机器特定的说明?.out是可执行的链接对象文件,它仍然依赖于.o文件,并且是特定于机器的.是不是真的需要.out文件扩展名,经常被省略?
我认为这涵盖了它.感谢您的任何更正或进一步说明.
凯尔
没有任何关于这些文件扩展名的内容; 如你所说,它们甚至可以省略,或者你可以自己编造.但是,如果你使用传统的生活,它会让生活变得更加容易.
我从未见过.src
扩展名.源文件所在的目录通常称为./src
; 也许你已经看过了.
通常,源代码(明文)与扩展名的文件.f
或.f90
.第一个表示固定源表单("旧样式"),第二个表示自由源表单("现代").一些编译器将大写文件扩展名(.F
和.F90
)解释为必须首先通过预处理器运行源代码.不要让编译器使用这些解释的扩展,所有这些也可以通过将标志传递给编译器来明确声明/否决.
编译源代码会生成目标代码(您提到的机器特定指令),包含在目标文件中,通常带有.o
扩展名(有时.obj
或其他).创建目标文件后,您确实可以丢弃源代码文件,但您不希望这样做.您希望修复最有可能发生的任何错误,并保留它们以便将来更改您的程序.
必须链接目标代码以生成最终的可执行文件.如果您有多个目标文件,它们将绑定在一起,并包含您引用的任何系统/外部库代码.在Unix上,如果没有为可执行文件指定名称,则通常会获得默认名称a.out
.同样,您可以通过将参数传递给编译器来否决这一点.