20155206 第三周随堂测试补交
实验一:
.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
用Vi输入图中代码,并用gcc编译通过
在Vi中使用K查找printf的帮助文档
提交vi编辑过程截图,要全屏,包含自己的学号信息
方法:
1:在命令行中输入vi head.c
,vi sub.c
,vi mul.c
,vi add.c
,vi div.c
,vi main.c
创建名字分别为head,sub,add,div,main的C类型文件,并直接在命令行中输入对应文件的代码。
2:继续在当前文件夹中使用命令行输入gcc -c *.c
对当前文件夹内的.c文件全部执行编译(注:因为当前文件夹内的文件全部是有关本次测试的,所以使用*.c
更加方便,若以后在这个文件夹中放入了其他文件,不建议使用),生成一个可执行的.o 文件。
3:继续在命令行中输入vim main.c
,进入到main的编辑,移动鼠标指向printf,输入K以显示。
实验三:
1.用gcc -g编译vi输入的代码
2.在main函数中设置一个行断点
3.在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
3.提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
方法:
1:命令行输入gcc -g *.c -o test
生成gdb text文件
2:输入gdb text
,进入调试并输入b 2
在第二行设置一个行断点,b if2603
在空循环中第2603次循环设置条件断点。
实验四:
1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
2.提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
方法:
1:输入ar -cr mymath.a add.o sub.o mul.o div.o
建立一个mymath静态库,把add.o、sub.o、mul.o、div.o复制进这个静态库
2:输入gcc -o prog main.c mymath.a
生成一个可执行文件prog
3: 输入gcc -c -g main.c
和gcc -o prog main.o ./mymath.a
进行gdb调试。
实验五:
1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
2.提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
方法:
与上一测试总体来说是差不多的,区别只在于建立一个是静态库,一个是共享库,其他基本一样
1:输入gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c
,建立共享库
2: 输入gcc -o prog2 main.c ./mymath.so
生成可执行文件prog2
3: 输入./prog2
运行
实验六:
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2 提交Make过程截图,要全屏,包含自己的学号信息
课下把Makefile推送到代码托管平台**
方法:
1:在vi界面通过vi Makefile
建立Makefile文档。
2:输入代码
myod
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
-
main与其他分开,制作静态库和动态库
-
编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
6 在博客园发表一篇博客,重点写遇到的问题和解决过程