1-VI
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
- 相关知识
- vi的使用
- 截图
2-gcc测试
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
- 相关知识
- ESC---ISO
- 截图
3-gdb测试
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
- 相关知识
- 要调试代码在用gcc编译时必须加上
-g
参数 - 使用gdb设置断点
- 行断点
- 临时断点
- 函数断点
- 条件断点
- 要调试代码在用gcc编译时必须加上
- 截图
4-静态库的测试
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
- 相关知识
- 生成和调用静态库
- 使用gdb设置断点
- 截图
5-共享库
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
- 相关知识
- 生成和调用共享库
- 使用gdb设置断点
- 截图
6-MyOD
- 复习c文件处理内容
- 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
- main与其他分开,制作静态库和动态库
- 编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
- main.c
#include <stdio.h> #include <string.h> #define MAXDATA 1024 int main(int args, char **argv) { FILE *fp; long chnum; if((fp=fopen(argv[1], "r"))==0) { printf("文件为空"); exit(0); } char data[MAXDATA]; int i=0; char ch; while((ch=fgetc(fp))!=EOF) { if(i<MAXDATA) { data[i++]=(char)ch; } } chnum=i; odfunction(chnum,data); fclose(fp); return 0; }
- odfunction.c
int odfunction(int num, char data[]) { int i,j; for(i=0; i<num; i=i+4) { if(i%16==0) { printf("\n%07o\t\t", i); } printf(" %02x%02x%02x%02x\t", data[i+3], data[i+2], data[i+1], data[i]); if((i+4)%16==0) { printf("\n\t "); for (j = i - 12; j < i+4 ; j++) { if ((int)data[j] == 10) { printf(" \\"); printf("n "); } else { printf(" %c ", data[j]); } } } if(data[i+4]==0) { printf("\n\t "); for(j = i-i%16; data[j-3] != 0; j++) { if((int)data[j] == 10) { printf(" \\"); printf("n "); } else { printf(" %c ", data[j]); } } break; } } printf("\n%07o\n", i+2 ); }
- Makefile
MyOD2: main.c odlib.so gcc -o MyOD2 main.c ./odlib.so odlib.so: odfunction.c gcc -shared -fpic -o odlib.so odfunction.c MyOD1: odlib.a main.o gcc -static -o MyOD1 main.o ./odlib.a main.o: main.c gcc -c main.c odlib.a: odfunction.o ar rcs odlib.a odfunction.o odfuncitopn.o: odfuntion.c gcc -c odfuntion.c
- 截图
7-Makefile
- 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
- 提交Make过程截图,要全屏,包含自己的学号信息
- Makefile
testmymath: main.c add.c sub.c mul.c div.c gcc -Og -o testmymymath main.c add.c sub.c mul.c div.c
- 截图
码云链接
来源:https://www.cnblogs.com/dky20155212/p/7604804.html