2017-2018-1 20155315 《信息安全系统设计基础》第二周课堂测试总结

1.vi编辑

要求

  1. 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
  2. 用Vi输入图中代码,并用gcc编译通过
  3. 在Vi中使用K查找printf的帮助文档、
    1071536-20170929074811809-1105488947.png

运行结果

1071536-20170929074949028-148071042.png

2.gcc测试

要求

  1. 用gcc 进行预处理,编译,汇编,链接vi输入的代码
  2. 生成的可执行文件中要有自己的学号

运行结果

1071536-20170929074934809-172991307.png

3.gdb调试

要求

  1. 用gcc -g编译vi输入的代码
  2. 在main函数中设置一个行断点
  3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点

代码调试中的问题及解决方法

问题:
在设置了条件断点之后,程序调试的时候不会在断点处停下。
解决方法: 在空循环中加一行代码打印空行再设置条件断点然后运行就可以了。如果只是空循环,不会停下。

运行结果

1071536-20170929081916356-1941977828.png

4.静态库的测试

要求

除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,制作一个mymath.a静态库,让main.c使用mymath.a。

步骤

  1. 把代码编译为目标文件形式:
    gcc -c 20155315add.c -o 20155315add.ogcc -c 20155315sub.c -o 20155315sub.ogcc -c 20155315mul.c -o 20155315mul.ogcc -c 20155315div.c -o 20155315div.o
  2. 使用工具ar创建一个存档文件:
    ar rcs mymath.a 20155315add.o 20155315sub.o 20155315mul.o 20155315div.o
  3. 编译程序时把程序和 mymath.a链接起来:
    gcc -static -o link1 20155315main.o mymath.a
  4. 运行link1
    ./link1

运行结果

1071536-20170929084334497-1339372415.png

5.共享库

要求

除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,制作一个mymath.so共享库,让main.c使用mymath.so。

步骤

  1. 创建一个共享的目标文件
    gcc -shared -fpic -o mymath.so 20155315add.c 20155315sub.c 20155315mul.c 20155315div.c
  2. 创建可执行目标文件
    gcc -o link2 20155315main.c ./mymath.so
  3. 运行link2
    ./link2

运行结果

1071536-20170929092701169-1459403759.png

心得与体会

本来以为这次测试就是简单地编个程序,没想到中途出现了许多没有见过的问题,这让我明白,没有codeblock中的各种提示及自动生成的各种文件后,在linux中编程序才更需要细心与耐心。

转载于:https://www.cnblogs.com/-zyl/p/7609572.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值