2017-2018-1 20155310 《信息安全系统设计基础》第二周学习总结

2017-2018-1 20155310 《信息安全系统设计基础》第二周学习总结

第二周测试3-gdb测试

要求

  1. 用gcc -g编译vi输入的代码

  2. 在main函数中设置一个行断点

  3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点

  4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

课下把代码推送到代码托管平台**

•运行截图

第二周测试4-静态库的测试

要求

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?

  2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

课下把代码推送到代码托管平台**

使用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-共享库

要求

  1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?

  2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

课下把代码推送到代码托管平台**

首先调用编译器驱动程序,创建共享库:

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的功能

  1. main与其他分开,制作静态库和动态库

  2. 编写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
•运行截图

码云链接https://gitee.com/bestiisjava2017/m20155310

原文地址:https://www.cnblogs.com/m20155310/p/7618222.html