文档库 最新最全的文档下载
当前位置:文档库 › 实验一__Linux下C编程

实验一__Linux下C编程

实验一__Linux下C编程
实验一__Linux下C编程

实验一 Linux下C编程

一.实验目的:

1.熟练使用vi中的常见操作,并且熟悉vi的3种模式;

2.熟练掌握gcc编译命令及gdb的调试命令;通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力;

3.通过对包含文件的makefile的编写,熟悉各种形式的makefile;

4.通过使用autotools生成包含多文件的makefile。

二.实验内容

1.熟练使用vi

(1)在“/root”目录下建一个名为“vi”的目录;

(2)进入“vi”目录;

(3)将文件“/etc/inittab”复制到“vi”目录下;

(4)使用vi打开“vi”目录下inittab;

(5)设定行号,指出设定initdefault的所在行号;

(6)将光标移到该行;

(7)复制该行内容;

(8)将光标移到最后一行行首;

(9)粘贴复制行的内容;

(10)撤销第9步操作;

(11)将光标移到最后一行行尾;

(12)粘贴复制行的内容;

(13)光标移到“si::sysinit:/etc/rc.d/rc.sysinit”;

(14)删除该行;

(15)存盘但不退出;

(16)将光标移到行首;

(17)插入模式下输入“Hello,this is vi world!”;

(18)返回命令行模式;

(19)向下查找字符串“0:wait”;

(20)向上查找字符串“halt”;

(21)强制退出vi,不存盘。

实验步骤见书本P87

2.用gdb调试程序中的bug

(1)使用vi编辑器将一下代码输入到名为greet.c的文件中。此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出。代码如下所示:(2)使用gcc编译这段代码,注意加上“-g”选项以方便之后的调试;

(3)运行生成的可执行文件,观察运行结果;

(4)使用gdb调试程序,通过设置断点,单步跟踪,一步步找出错误所在;

(5)纠正错误,更改源程序并得到正确结果;

实验步骤见书本P88

3.编写包含多文件的makefile

(1)用vi在同一目录下编辑两个简单的hello程序,如下所示:

#hello.c

#include “hello.c”

int main()

{

printf(“Hello everyone!\n”);

}

#hello.h

#include

(2)仍在同一目录下用vi编辑makefile文件,且不使用变量替换,用一个目标体实现,然后用make验证所编写的makefile是否正确;

(3)仍将上述makefile使用变量替换实现,同样用make验证所编写的makefile 是否正确;

(4)编辑另一个makefile,取名为makefile1,不使用变量替换,但用两个目标体实现(首先将hello.c和hello.h编译为hello.o,再将hello.o编译为hello),再

用make的“-f”选项验证这个makefile的正确性;

(5)将上述makefile1使用变量替换实现

实验步骤见书本P90

4.使用autotools生成包含多文件的makefile

(1)在原目录下新建文件夹auto

(2)将上例中的两个代码文件“hello.c”和“hello.h”复制到该目录下

(3)使用autoscan生成configure.scan

(4)编辑configure.scan,修改相关内容,并将其重命名为configure.in

(5)使用aclocal生成aclocal.m4

(6)使用autoconf生成configure

(7)使用autoheader生成config.h.in

(8)编辑makefile.am

(9)使用automake生成makefile.in

(10)使用configure生成makefile

(11)使用make生成hello可执行文件,并在当前目录下运行hello查看结果

(12)使用make install将hello安装到系统目录下,并运行,查看结果

(13)使用make dist生成hello压缩包

(14)解压hello压缩包

(15)进入解压目录

(16)在该目录下安装hello软件

实验步骤见书本P91

三.实验结果截图

1. 实验一截图

Linux下的简单的运用:

图一

对inittab文件做完处理后的文件结果:

图二

图三2.实验二截图

第一遍运行greet.c的结果:

图四用gdb调试的过程:

图五

图六

图七

图八

图九

3.实验三截图

第一次运行的结果

图十

第一次运行makefile的结果:

图十一

第二次运行makefile的结果:

图十二

第一次运行makefile1的运行结果:

图十三

第二次运行makefile的运行结果:

图十四

四.实验心得体会

1.对于实验一:

复习了linux 下面对于文件编辑的一些知识。

2.对于实验二:

学会了gdb调试的简单运用:gdb l()-查看源代码;gdb b()-设置断点;gdb info b-查看断点情况;gdb r-运行代码;gdb n-单步运行代码;gdb p()-查看;gdb c-继续运行;gab q-退出;对于以后代码的改错很有帮助。

3.对于实验三:

实验三是我做的最不开心的一个了,开始在运行makefile,不管怎么样都是错的,可是检查却没有任何错误,后来想起来以前做makefile的时候要用tab键缩进的,这样之后发现就可以了。这个实验虽然让我很烦,但是想起了以前学liunx的好多东西,帮助很大,也觉得以前知识要常复习,这样才不容易忘。

相关文档