2017-2018-1 20155333 课堂测试1
2017-2018-1 20155333 课堂测试1
第二周测试1-vi
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
刚开始直接输入gcc main.c
,出现如图所示的问题
未编译add.c、sub.c、mul.c、div.c,直接编译main.c,所以显示“对‘xxx’未定义的引用“,输入gcc *.c
,即可实现目的。
第二周测试2-gcc测试
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
如图所示,在汇编过程中出现问题,不能生成main.o文件
输入gcc -c main.s
即可解决问题,成功生成main.o文件。
第二周测试3-gdb测试
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
输入gcc -g main.c
同样出现“对‘XXX’未定义的引用”问题
尝试输入gcc -g *.c
,果然没有再出现问题,输入gdb a.out
即可调试程序。
第二周测试4-静态库的测试
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图:
第二周测试5-共享库
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图:
第二周测试6-Makefile
- 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
- 提交Make过程截图,要全屏,包含自己的学号信息
截图:
myod
- 复习c文件处理内容
- 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
- main与其他分开,制作静态库和动态库
- 编写Makefile
- 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
- 在博客园发表一篇博客,重点写遇到的问题和解决过程