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


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

    课堂实践

    • 由于自己课下功夫下的不到位,所以导致课堂上第四个第五个实践没能按时完成。经过课下的努力学习。

    实践4静态库测试

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

      创建静态库:

    • linux> gcc -c addvec.c multvec.c使用 gcc -c ···.c ···.c ···.c 把要将创建的静态库所包含的.c文件编译为.o文件。

    • linux> ar rcs libvector.a addvec.o multvec.o
      使用 ar rcs ···.a ···.o ···.o ···.o 由以上编译出来的.o文件创建静态库。(在我自己的操作中根据题意命名为mymath)

      创建可执行文件(即在在程序中使用静态库)

    • gcc -c main.c

    • gcc -static -o ··· main.o ./···.a
      通过以上的两行命令将创建的.a文件链接到main.o上,创建出一个可直接运行的文件(在我自己的操作中命名为prog11c)

    实践5动态库测试

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
    2. 提交共享库生成和调用过程截图,要全屏,包含自己的学号信息
      解决方法:
    • linux>gcc -shared -fpic -o libvector.so addvec.c multvec.c
      对这行命令的理解:使用 gcc -shared -fpic -o ···.so ···.c ···.c 创建了一个共享的目标文件。
      创建可执行文件(即在在程序中使用动态库)

    • linux> gcc -o prog21 main2.c ./libvector.so
      使用 gcc -o ··· main.c ./··· 创建了一个可执行的文件(在我自己的操作中命名为prog4s)

    myod测试

    1.打开一个文件vim 5311.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 5311.c

    3.od -tx -tc hello.c

    4.sudo 5311.c 给予权限

    5../a.out

  • 相关阅读:
    String.Format( )用法
    Androidstudio中添加jar包的方法
    Qt SQLite 批量插入优化(SQLite默认将每条语句看成单独的事务)good
    aravel 之父 Taylor Otwell :我是如何工作的
    【码云周刊第 22 期】GO :互联网时代的 C 语言!
    2017 JavaScript 开发者的学习图谱
    【码云周刊第 29 期】构建高性能微服务架构
    SOA和微服务
    NET Core Web 应用部署到 Docker 中运行
    Expression Trees
  • 原文地址:https://www.cnblogs.com/gaoziyun11/p/7617092.html
Copyright © 2020-2023  润新知