第一章学习总结
测试1
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
运行结果
查看帮助文档
测试2
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
运行结果
相关命令:
1、gcc -E .c -o .i ** 编译预处理
2、gcc -S .i -o .s** 产生汇编代码
3、gcc -c .s -o .o 进行汇编
4、gcc * .o -o XXX 生成可执行文件
5、ls 显示文件列表
测试3
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
运行结果
测试4
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
运行结果
相关命令:
1、把代码编译为目标文件形式:
gcc -c add.c -o add.o
gcc -c sub.c -o sub.o
gcc -c mul.c -o mul.o
gcc -c div.c -o div.o
2、使用工具ar创建一个存档文件:
ar rcs mymath.a add.o sub.o mul.o div.o
3、编译程序时把程序和 mymath.a链接起来:
gcc -static -o ../bin/test1 main.o mymath.a
4、在bin中运行test1:
./test1
测试5
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
运行结果
相关命令:
1、创建一个共享的目标文件:
gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c
2、创建可执行目标文件:
gcc -o ../bin/test2 main.c ./mymath.so
3、在bin中运行:
./test2
测试6
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2 提交Make过程截图,要全屏,包含自己的学号信息
运行结果:
代码学习中的问题和解决过程:
问题1:
这个问题我还没有发现很好的解决方法,不过把head.h放到src文件后就没有弹出错误了
问题2:
这完全是粗心的问题,将gcc -c 写成了gcc -C 从而导致了问题的出现