2017-2018-1 20155231 《信息安全系统设计基础》 第二周课堂测试
2017-10-01 20:47
337 查看
第二周测试
测试1
用vi输出图中代码,每个.c,.h一个文件在vim编辑器中,将光标移动到printf的位置,按k使用帮助文档
测试2
预处理:gcc –E main.c –o hello.i;
gcc –E调用cpp
编 译:
gcc –S main.i –o main.s;
gcc –S
调用ccl
汇 编:
gcc –c main.s –o main.o;
gcc -c 调用as
链 接
: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命令如何编译和链接这几个文件。我们的规则是:如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。
编写makefile为如图
输入make创建文件testmymath,失败,在写入定义如何生成目标文件的操作系统命令,一定要以一个Tab键作为开头
输入make创建成功,运行。
代码链接
相关文章推荐
- 2017-2018-1 20155338 《信息安全系统设计基础》 第二周课堂测试
- 2017-2018-1 20155327 《信息安全系统设计基础》课堂测试&课下作业
- 2017-2018-1 20155239学号 《信息安全系统设计基础》课堂测试补做+第四周学习总结
- 2017-2018-1 20155333 《信息安全系统设计基础》课堂测试
- 2017-2018-1 20155308 《信息安全系统设计基础》课堂第六章测试(补做)
- 2017-2018-1 20155231 《信息安全系统设计基础》课程总结
- 2017-2018-1 20155317 《信息安全系统设计基础》课堂实践——实现mypwd
- 2017-2018-1 20155214 《信息安全系统设计基础》 第9周课下测试-mypwd
- 20155325 2017-2018 1 课上测试、课下作业、实验——码云&博客链接汇总 《信息安全系统设计基础》
- 2017-2018-1 20155216 《信息安全系统设计基础》 第十六周课上测试补交
- 20155319 2017-2018-1《信息安全系统设计》第四周课堂测试、Makefile、myod
- 20155339 2017-2018-1《信息安全系统设计》第四周课堂测试、Makefile以及myod
- 2017-2018-1 《信息安全系统设计基础》课下测试错题汇总
- 20155336 2017-2018 1 《信息安全系统设计基础》2017-10-25课堂实践
- 20155336 2017-2018 1 《信息安全系统设计基础》2017-9-27课堂实践
- 2017-2018-1 20155231 《信息安全系统设计基础》实现mypwd
- 2017-2018-1 20155321 《信息安全系统设计基础》课堂实践——实现mypwd
- 2017-2018-1 20155214 《信息安全系统设计基础》 第6周学习总结
- 2017-2018-1 20155315 《信息安全系统设计基础》实验三 实时系统
- 2017-2018-1 20155314《信息安全系统设计基础》实验五 通讯协议设计