1.7 实训任务4 测试Linux系统可用性
在Linux系统开发前,必须确定系统已经安装开发工具的软件包,具有完整的开发环境。安装Linux时,指定该开发环境的安装包,如图1-31所示。
图1-31 指定开发工具软件包
应用程序开发主要包括代码编辑、代码编译与链接、程序调试与运行三个步骤,下面以helloworld程序为例说明基本的开发过程。
(1)在Linux的用户目录下建立gccsample目录,用于保存本示例的代码,在gccsample目录下建立helloworld.c文件,编写如下源代码并保存。注意代码中不能出现非英文的字母和符号,但注释中可以出现中文或符号。
/* 包含系统头文件 */ #include <stdio.h> int main() { /* 在终端打印Hello World!字符串 */ printf("Hello World!\n"); return 0; }
(2)通过Shell终端使用GCC编译器对代码进行编译和链接,生成可执行程序,编译和链接过程中可以指定编译选项。
# gcc –o helloworld helloworld.c
注意:在这个程序代码中并没有定义printf函数的实现,且在预编译中包含的头文件“stdio.h”中也只有该函数的声明,并没有定义函数的实现,那么是在哪里实现printf函数的呢?实际情况是:系统把C库的函数实现都放在libc.so.6的库文件中,在没有特别指定的情况下,GCC会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到libc.so.6库函数中的printf函数的实现,这样在执行可执行程序时就可以运行函数printf了。
(3)在Linux系统的Shell终端中运行该可执行程序,运行结果如下。
# ./helloworld Hello World!
注意:此处打印"Hello World!"字符串后有一个回车字符'\n',如果没有该字符,可能出现字符串"Hello World!"没有打印出来的问题,这是因为printf函数本身具有一定的缓存,程序运行打印后很快退出,printf的打印可能丢失而导致不能打印字符串出来,增加了'\n',字符可以清空printf的缓存,立即将字符串打印到终端上。