• 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创建成功,运行。

    代码链接

  • 相关阅读:
    Java面向对象练习输出水仙花
    Java面向对象练习学生信息输出
    java面线对象练习时钟
    java面向对象存取款
    0516Java面向对象求面积练习
    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    0516编写西游记人物类
    0514练习
    仓鼠找sugar
    NOIP2018旅行
  • 原文地址:https://www.cnblogs.com/javasyn/p/7617778.html
Copyright © 2020-2023  润新知