2017-2018-1 20155310 《信息安全系统设计基础》第二周学习总结
第二周测试3-gdb测试
要求
-
用gcc -g编译vi输入的代码
-
在main函数中设置一个行断点
-
在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
-
提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
课下把代码推送到代码托管平台**
•运行截图
第二周测试4-静态库的测试
要求
-
除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
-
提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
课下把代码推送到代码托管平台**
使用AR工具创建加减乘除四个模块的静态库:
gcc -c add.c sub.c mul.c div.c
ar rcs mymath.a add.o sub.o mul.o div.o
然后编译和链接main.o和mymath.a:
gcc -c main.c
gcc -static -o 20155310 main.o ./mymath.a
•最后运行程序,结果如下:
•运行截图
第二周测试5-共享库
要求
-
除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
-
提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
课下把代码推送到代码托管平台**
首先调用编译器驱动程序,创建共享库:
gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c
gcc -o share5310 main.c ./mymath.so
然后运行。
•运行截图
第二周测试6-Makefile
要求
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
2 提交Make过程截图,要全屏,包含自己的学号信息
课下把Makefile推送到代码托管平台**
用vim创建makefile
代码如下:
testmymath: main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o testmymath
main.o: main.c head.h
gcc -c main.c
add.o: add.c head.h
gcc -c add.c
sub.o: sub.c head.h
gcc -c sub.c
mul.o: mul.c head.h
gcc -c mul.c
div.o: div.c head.h
gcc -c div.c
•运行截图
myod
要求
1 复习c文件处理内容
2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能
-
main与其他分开,制作静态库和动态库
-
编写Makefile
5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息
6 在博客园发表一篇博客,重点写遇到的问题和解决过程
1.打开文件vim m5310.c
输入编译出来的函数
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch;
FILE *fp1;
if((fp1=fopen("hello.c","r"))==NULL)
{
printf("ss");
exit(0);
}
while((ch=fgetc(fp1))!=EOF)
{
printf("%x %c ",ch,ch);
}
fclose(fp1);
return 0;
}
2.编译 gcc m5310.c
3.od -tx -tc hello.c
4../a.out
•运行截图