博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017-2018-1 20155231 《信息安全系统设计基础》 第二周课堂测试
阅读量:4541 次
发布时间:2019-06-08

本文共 1056 字,大约阅读时间需要 3 分钟。

第二周测试

测试1

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

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

1072993-20171001203744184-968064429.png

测试2

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

gcc –E调用cpp

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

gcc –S

调用ccl

  1. 汇 编:
gcc –c main.s –o main.o;

gcc -c 调用as

  1. 链 接
:gcc main.o  add.o sub.o mul.o div.o –o main;

gcc -o 调用ld。

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

1072993-20171001203803809-566103473.png

测试3

gcc -g

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

1072993-20171001203814997-1073153430.png

在main函数中加入循环

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

,设置条件断点,

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

运行

1072993-20171001203824169-299055913.png

测试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

调用静态库。

1072993-20171001203833747-1205662350.png

测试5 共享库

创建库

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

创建可执行文件

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

运行文件。

1072993-20171001203844903-1280646399.png

测试6 Makefile

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

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

编写makefile为如图

1072993-20171001203904887-283228667.png

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

1072993-20171001204214887-571968052.png

输入make创建成功,运行。

1072993-20171001204241934-517137168.png

转载于:https://www.cnblogs.com/javasyn/p/7617778.html

你可能感兴趣的文章
SQL语法之初级增删改查
查看>>
[转] Python基本学习资源收集汇总
查看>>
敏捷冲刺集合帖
查看>>
HTML5之Canvas
查看>>
团队作业8——第二次项目冲刺(Beta阶段)5.27
查看>>
彻底理解this指向
查看>>
hdu 3468(二分匹配)
查看>>
抑郁症的自我测试
查看>>
计算机编程以及基础原理
查看>>
关于多选框的问题
查看>>
使用.NET Reflector
查看>>
【剑指offer】40、最小的K个数
查看>>
JAVA生成RSA非对称型加密的公钥和私钥(利用JAVA API)
查看>>
mybatis + log4j 打印mybatis的sql
查看>>
解决Visual Studio:"无法导入以下密钥文件: xxxx.pfx,该密钥文件可能受密码保护"
查看>>
POJ1061-青蛙的约会---扩展欧几里德算法求最小整数解
查看>>
[RxJS] Conclusion: when to use Subjects
查看>>
10.18
查看>>
Redis安装
查看>>
【Java深入研究】11、深入研究hashmap中的hash算法
查看>>