教材学习内容总结
gcc使用命令:
GDB使用命令:
实验
测试1-vi
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
首先用vim
编辑好要求的代码,通过gcc -c
编译成.o
用gcc *.o -o main
后生成可执行文件。
测试2-gcc测试
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
使用gcc编辑命令将文件从.c > .i > .s > .o
直到链接成为可执行文件。
测试3-gdb测试
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
使用gcc -g
编译文件后用gdb
运行调试,参照以下命令:
测试4-静态库的测试
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
将add.o sun.o div.o mul.o
重新编译到一个新文件夹下,用ar rcvs
和gcc -g -static
制作静态库mymath.a
测试5-共享库
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
用gcc -g -shared -fpic
命令选中程序调用函数子文件,然后用gcc -g
选中文件主函数,制作共享库.so
测试6-Makefile
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2 提交Make过程截图,要全屏,包含自己的学号信息
先vi Makefile
编辑必要信息,然后在文件夹将所有的.o
文件放置在同一文件夹下,才能make出可执行文件。
代码调试中的问题和解决过程
- 问题1:Makefile的时候不是提示没有文件就是提示
No rule to make target 'head.h', needed by 'main.o'。 停止。
- 问题1解决方案:需要将make所需所有文件放在同一文件夹下才能
make
出来
感悟
新学期新开始,再次打开虚拟机Ubuntu,打开有道云,博客园写博客,感受时间飞快,又要学习新一门课程,学习更加深入的知识了。C语言算是学习了很久的一门知识了,现在需要深入理解计算机了解计算机是如何把那些代码编译成为执行的程序从而更加深入了解计算机.我会努力学号这门课的!