20155233刘高乐 第二周课堂实践以及MyOD

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

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

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

答案:

1.在命令行输入gcc -shared -fpic -o libv20155233.so 20155233sub.c 20155233add.c 20155233mul.c 20155233div.c
2.输入gcc -o libv20155233 20155233main.c ./libv20155233.so
3.完成后就能够运行./libv20155233
4.具体尝试以下图:
vim

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

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

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

3. 提交调试过程截图(必定包含条件断点的),要全屏,包含本身的学号信息

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

答案:

1.首先,输入gcc 20155233main.c 20155233add.c 20155233sub.c 20155233div.c 20155233mul.c -g -o text
2.其次,输入cgdb text进入调试界面
3.调试程序以下:
测试

第二周测试6-Makefile

1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就能够.命令行

2 提交Make过程截图,要全屏,包含本身的学号信息3d

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

答案:

  • 1.命令行输入vim Makefile,编辑如下内容(注意Tab的使用):
  • 2.保存退出后命令行输入make,以后输入./testmymath运行,以下图:

1 复习c文件处理内容

2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

3. main与其余分开,制做静态库和动态库

4. 编写Makefile

5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含本身的学号信息

6 在博客园发表一篇博客,重点写遇到的问题和解决过程

答案:

  • 1.代码实现:
#include<stdio.h>
void main(){

    char filename[50];
    printf("please input file's name;\n");
    scanf("%s",filename);
    ascii(filename);
    change(filename);

}
void ascii(char *filename)
{FILE *fp;
char ch;
   fp=fopen(filename,"r");
    ch=fgetc(fp);
printf("ascii码输出为:\n");
    while(ch!=EOF)
    {if(ch=='\n') printf("\n");
        else printf("%4d",ch);
        ch=fgetc(fp);
    }
}
void change(char *filename)
{
FILE *fp;
char ch;
    printf("16进制输出为:\n");
    fp=fopen(filename,"r");
        ch=fgetc(fp);
    while(ch!=EOF)
    {
if(ch=='\n') printf("\n");
        else printf("%4x",ch);
        ch=fgetc(fp);
    }
    fclose(fp);
}

截图展现

  • 2.实现方法:ascii值输出是将%c输出转换为%d输出,十六进制输出是将%c输出转换为%x输出。
  • 3.静态库制做以下图:
    code

  • 4.动态库制做以下图:
    blog

  • 5.makefile文件制做以下图:
    (1)首先,输入vim Makefile,编辑如下内容:

    (2)其次,输入如下命令执行文件:
    ci

相关文章
相关标签/搜索