本节通过一个实例讲述如何用gcc编译C程序。在编译程序之前,需要用VIM编写一个简单的C程序。在编译程序时,可以对gcc命令进行不同的设置。
本节将编写第一个C程序(书中编写程序使用的编辑器是VIM)。
【实例 4.1】 程序实现文本的输出和判断两个整数的大小,如实例代码 4.1 所示。过程如下:
①打开系统终端。单击“主菜单”|“系统工具”|“终端”命令,打开一个系统终端。
②在终端中输入下面的命令,在用户根目录“root”中建立一个目录。
③在终端中输入“vim”命令,然后按“Enter”键,系统会启动VIM。
④在VIM中按“I”键,进入插入模式,然后在VIM中输入程序代码。
实例代码 4.1 文本的输出和判断两个整数的大小
【代码解析】代码第20 行,是输出“hello, Linux.”文本;第21 行,是调用max()函数得到变量i和j中的最大值,并保存到变量k中。
⑤代码输入完成以后,按“Esc”键,返回普通模式,然后输入下面的命令,保存文件。
这时,VIM会把输入的程序保存到c目录下的文件a.c中。
⑥输入“:q”命令,退出VIM。至此,已经完成了这个C程序的编写。
上面编写的C程序,只是一个源代码文件,还不能作为程序来执行,需要用gcc将这个源代码文件编译成可执行文件。编译文件的步骤如下所示。
①打开系统终端。单击“主菜单”|“系统工具”|“终端”命令,打开一个系统终端。这时进入的目录是用户根目录“/root”,然后输入下面的命令,进入c目录。
②上一节编写的程序就存放在这个目录下,输入“ls”命令可以查看这个文件。
③输入下面的命令,将这个代码文件编译成可执行文件。
④查看已经编译的文件。在终端中输入“ls”命令,显示的结果如下所示。
⑤输入下面的命令,对这个文件添加可执行权限。
【运行效果】输入下面的命令,运行这个程序,最后结果如图 4.1 所示。
图4.1 文本的输出和判断两个整数的大小实例输出结果
从上面的操作可知,用gcc可以将一个C程序源文件编译成一个可执行文件。编译后的文件需要添加可执行权限才可以运行。在实际操作中,还需要对程序的编译进行各种设置。
注意: 文件名必须保存为“.c”或者“.C”才能被gcc所编译;否则必须指定编译语言。
gcc在编译程序时可以有很多可选参数。在终端中输入下面的命令,可以查看gcc的这些可选参数。
在终端中显示的gcc的可选参数如下所示。进行程序编译时,可以设置下面这些参数。
在默认情况下,gcc编译出的程序为当前目录下的文件a.out。-o参数可以设置输出的目标文件。例如下面的命令,可以设置将代码编译成可执行程序do。
也可以设置输出目录文件为不同的目录。例如下面的命令,是将目录文件设置成/tmp目录下的文件do。
输入下面的命令,查看生成的目录文件。
结果如下所示,在编译程序时生成的目录为/tmp目录下的文件do。
-v参数可以查看程序的编译过程和显示已经调用的库。输入下面的命令,在编译程序时输出编译过程。
显示的结果如下所示。
gcc可以对多种语言编写的源代码进行编译。如果源代码的文件扩展名不是默认的扩展名,gcc就无法编译这个程序。可以用-x参数来设置程序语言。通过下面的步骤来练习这一操作。
①输入下面的命令,将C程序文件复制一份。
②复制出的文件a.u是一个C程序文件,但扩展名不是默认的扩展名。这时输入下面的命令编译这个程序。
③显示的结果如下所示,表明文件的格式不能识别。
④这时,用-x参数设置编译的语言,命令如下所示。这样就可以正常地编译文件a.u了。
需要注意的是,这里的c需要用单引号扩起来。当编译扩展名不是.c的C程序时,需要使用-x参数。