服务器使用简介

14次阅读

编译程序是一个把源代码通过编译器转变成可执行程序的过程。首先,需要程序的源文件。这个源程序可以先 在自己机子上编译好,再通过 Winscp 或 scp 等传到服务器上进行编译,也可以在服务器上调用文本编辑器 新建一个。这里面我们演示一下后者。

[mike@c1 ~]$ vi hello.f90

vi 是 Linux 系统下很广泛,功能很强大的编辑器。几乎每个 Linux 系统都会自带一个,而且上手以后可以 十分迅速的进行编辑。打开 vi 编辑器以后,先输入字母 i 进入插入模式,再输入以下内容。

Program hello print *, "Hello World!" End Program

输入完成以后,按 Esc 键退出插入模式,返回到命令模式。再按冒号,可以看到屏幕底行的左边出现了一个 冒号,再按 wq,确认,一个叫 hello.f90 程序就编辑好了。

[mike@c1 ~]$ ls dir-a dir-b hello.f90 regular-file

如果想进一步了解 vi 编辑器,可以输入 vimtutor 命令,再按提示进行练习。这里面继续进行后面的

[mike@c1 ~]$ gfortran hello.f90 -o hello [mike@c1 ~]$ ls dir-a dir-b hello hello.f90 regular-file

可以看到多了一个叫 hello 的文件,这就是刚刚用 gfortran 编译器编译出来的可执行程序。

[mike@c1 ~]$ ./hello Hello World!

运行一下这个程序,可以看到成功的输出了结果。./hello 的意思是“当前目录下的 hello” 文件。这是一个相对路径。执行可执文件需要明确指定当前目 录,是出于安全性的考虑。

如果程序由多个源文件组成,则可以把这些源文件都指定为命令行参数进行编译。如程序由 main.f90functions.f90 组成

! File: main.f90 Program main call print_greeting End Program
! File: functions.f90 subroutine print_greetings print *, "Hello world!" end subroutine

在命令行下运行

$ gfortran -o hello main.f90 functions.f90

就可以编译出 hello 程序。

如果程序文件较多的话,可先将源文件编译成目标文件,再将目标文件链接成可执行程序。

[mike@c1 ~]$ gfortran -c functions.f90 [mike@c1 ~]$ ls dir-a functions.f90 hello.f90 main.f90 regular-file dir-b functions.o hello.txt nohup.out

执行成生了 functions.o 目标文件。

[mike@c1 ~]$ gfortran -c main.f90 [mike@c1 ~]$ gfortran main.o functions.o -o hello

也可以目标文件与源文件写在一起。如果只改变了 main.c 文件,可以执行如下命令

[mike@c1 ~]$ gfortran main.c functions.o -o hello

这将重新编译 main.c 文件,并与上次生成的 functions.o 文件链接,生成可执行文件 hello.

-l 选项是指定用来链接的库。如在安装了 lapack 库的机器上,可以用 -llapack 来链接 lapack 库。(现在的服务器上还没安上。)

还有一个编译选项 -O, 是开启编译器优化。一般可使用参数 -O3 进行优化。

对于其它的编译器,如 gcc, g++, ifort, icc. (它们分别是 GNU 的 C 语言,C++,以及 Intel 的 Fortran, C 编译器,本服务上都己安装。),以上介绍的 -c, -o 选项是通用的。其它具体的使用,可查阅相应的 man.

$ man ifort

原文链接:https://icpcs.lzu.edu.cn/manual.html

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-04发表,共计1597字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。