zoukankan      html  css  js  c++  java
  • 云班课上的作业

    1-vi .c文件 .h文件
    本实验的过程在test/test4中:
    代码:
    20199302.h

    ifndef HEAD_H

    define HEAD_H

    int add(int,int);
    int sub(int,int);
    int mul(int,int);
    double div(int,int);

    endif

    sub.c

    include "20199302.h"

    int sub(int a,int b)
    {
    return a-b;
    }

    add.c

    include "20199302.h"

    int add(int a,int b)
    {
    return a+b;
    }

    mul.c

    include "20199302.h"

    int mul(int a,int b)
    {
    return a*b;
    }

    div.c

    include "20199302.c"

    double div(int a,int b)
    {
    return a/b;
    }

    main.c

    int main(void)
    {
    int a,b;
    printf("enter two numbers:");
    scanf("%d %d",&a,&b);
    printf("sub:%d ",add(a,b));
    printf("sub:%d ",sub(a,b));
    printf("mul:%d ",mul(a,b));
    printf("div:%lf ",div(a,b));
    return 0;
    }

    编译:

    出错,引用了错误的文件,应该改为.h,改正

    编译成功:

    执行结果中除法有问题,但是代码没有问题,所以不知道是什么原因,如下图所示:

    vi-2

    GCC编译流程
    预处理,头文件和宏定义:gcc -E 20199302.c -o 20199302.i

    编译阶段,将代码翻译成汇编语言:gcc -S 20199302.i -o 20199302.s

    汇编阶段,将.s文件转成目标文件,二进制目标代码 gcc -c 20199302.s -o 20199302.o

    最后一步

    vi-3

    1. 用gcc -g编译vi输入的代码
    2. 在main函数中设置一个行断点
    3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
    4. 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
      gcc -g hello.c -o main
      Gdb main
      b num
      b 行数 if 表达式
      r
      q

    vi-4

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
    2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    静态库是一系列的目标文件(.o文件)的归档文件((lib+name).a文件);链接阶段,选择静态库,后缀名为“.a”,选择动态库,后缀名为“.so”。
    静态链接库的生成:gcc -c 文件名.c ar rcsv libxxx.a xxx.o;
    静态库的使用:gcc -o 文件名 文件名.c -L. -lxxx

    生成mymath.a静态库

    使用mymath.a

    vi-5 1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
    2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    vi-6
    1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
    2 提交Make过程截图,要全屏,包含自己的学号信息
    首先写makefile

    testmymath:main.o add.o sub.o mul.o div.o
    gcc mian.o add.o sub.o mul.o div.o -o testmymath
    main.o:main.c 20199302.h
    gcc -c main.c -o main.o
    add.o:add.c 20199302.h
    gcc -c add.c -o add.o
    sub.o:sub.c 20199302.h
    gcc -c sub.c -o sub.o
    mul.o:mul.c 20199302.h
    gcc -c mul.c -o mul.o
    div.o:div.c 20199302.h
    gcc -c div.c -o div.o
    clean:
    rm -f *.o testmymath

  • 相关阅读:
    转:jQuery选择器大全(48个代码片段+21幅图演示)
    转:Web 开发中很实用的10个效果【附源码下载】
    转:在网站开发中很有用的8个 jQuery 效果【附源码】
    转:35个让人惊讶的 CSS3 动画效果演示
    转:总结const、readonly、static三者的区别
    转:C# 深入理解堆栈、堆在内存中的实现
    推荐:Asp.Net MVC 多语言(html+js共用一套资源文件)
    转:HttpModule与HttpHandler详解
    转: ASP.NET MVC 多语言配置
    spring集合类型注入
  • 原文地址:https://www.cnblogs.com/eosmomo/p/11587932.html
Copyright © 2011-2022 走看看