zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155231 《信息安全系统设计基础》 第二周课堂测试

    第二周测试

    测试1

    用vi输出图中代码,每个.c,.h一个文件

    在vim编辑器中,将光标移动到printf的位置,按k使用帮助文档

    测试2

    1. 预处理:
    gcc –E main.c –o hello.i;
    

    gcc –E调用cpp

    1. 编 译:
    gcc –S main.i –o main.s;
    

    gcc –S
    调用ccl
    3. 汇 编:

    gcc –c main.s –o main.o;
    

    gcc -c 调用as
    4. 链 接

    :gcc main.o  add.o sub.o mul.o div.o –o main;
    

    gcc -o 调用ld。

    每个.c文件运行获得.o文件,将所有.o文件链接得到可执行文件。

    测试3

    gcc -g
    

    编译得到了可执行文件,用gdb调试文件,输入(gdb) l显示文本,输入(gdb)b n在第n行设置断点

    在main函数中加入循环

    for(i=0;i<5231;i++)
    

    ,设置条件断点,

    (gdb)b if i=2615
    
    gdb(r)
    

    运行

    测试4 静态库

    使用AR工具创建静态库

    ar rcs mymath20155231.a add.o sub.o div.o mul.o
    

    链接输入文件main.o和mymath20155231.a

    gcc -static -o prog20155231 main.o ./mymath20155231.a
    

    输入

    ./prog20155231
    

    调用静态库。

    测试5 共享库

    创建库

    gcc -shared -fpic -o mymath20155231.so add.c sub.c mul.c div.c
    

    创建可执行文件

    gcc -o prog20155231s main.o ./mymath20155231.so
    

    运行文件。

    测试6 Makefile

    要写一个Makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:

    1. 如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
    2. 如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
    3. 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。

    编写makefile为如图

    输入make创建文件testmymath,失败,在写入定义如何生成目标文件的操作系统命令,一定要以一个Tab键作为开头

    输入make创建成功,运行。

    代码链接

  • 相关阅读:
    maven配置
    redis测试
    智慧社区技术总结
    视频导航
    Delphi 任务栏中不显示窗口
    Delphi 设置程序图标为系统默认图标
    清除Windows系统图标缓存
    C/C++ 变量的本质分析
    005 C/C++ 数据类型_void
    004 C/C++ 数据类型_类型别名
  • 原文地址:https://www.cnblogs.com/javasyn/p/7617778.html
Copyright © 2011-2022 走看看