2019-2020-1 20175320 《信息安全系统设计基础》第三周学习总结
Posted nameless-student
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019-2020-1 20175320 《信息安全系统设计基础》第三周学习总结相关的知识,希望对你有一定的参考价值。
2019-2020-1 20175320 《信息安全系统设计基础》第一周学习总结
一、教材学习内容总结
本周我们了解并练习了gcc的使用,并在此基础上进行gdb以及makefile的使用。围绕gcc,本周的内容可以分为以下几部分:利用gcc的-E、-S、-c这三个参数对c文件进行逐步编译;将c文件中的函数转化为函数库,并对库函数进行调用;使用makefile对程序进行自动编译;使用gdb调试程序。在本博客中我使用了老师提供的main.c程序作为例子,下图为程序代码。
使用gcc的-E、-S、-c这三个参数对c文件进行逐步编译
- 此处需要注意的是,这三个参数的大小写不可随意更改,且有这些参数的命令不能同时对多个文件进行操作。
- 若进行操作的文件不在当前目录,可以在文件名前加上文件路径。
- 多模块操作时,可以将多个c文件直接编译成可执行文件,也可将c文件先编译成.o文件,再将.o文件进行链接。
- 在进行编译的过程中,warning提示是可以忽略的,并不影响过程的进行。
该部分的部分过程以及运行结果如下图:
将c文件中的函数转化为函数库,并对库函数进行调用
- 静态库与动态库的生成过程十分相似,都是先编译并汇编得到所调用函数的可重定位目标程序,然后通过命令基于这些文件生成库文件,最后在编译主程序的过程时通过-L以及-l参数将主程序与函数库链接起来
- 当进行操作的文件不在当前目录时,可以在文件前添加路径来找到文件。
该部分的部分过程以及运行结果如下图:
静态库:
动态库:
使用makefile对程序进行自动编译
- 编写好makefile文件后,可以使用make命令对文件进行自动编译,makefile代码中进行操作的文件如果不在makefile文件所在的目录,需要在文件名前添加文件路径
本例的makefile代码如图:
makefile的运行结果如下:
本例的文件结构如下图:
使用gdb调试程序
- 在使用gdb进行调试时,需要使用-g参数对c文件进行编译
在这里我仍然使用main.c作为例子,gdb各命令的结果如下图所示:
gdb编译:
gdb list命令:
gdb info查看断点:
gdb next命令:
二、教材学习中的问题和解决过程
这周的内容并不困难,没有遇到十分难以解决的问题。
三、代码调试中的问题和解决过程
- 问题1:按照ppt编写makefile文件,运行时显示找不到文件。
- 问题1解决方案:修改makefile代码,在操作文件名前添加文件路径。
- 问题2:gdb调试时使用step命令无法进行数据输入。
- 问题2解决方案:使用next命令调试程序。
四、代码托管
五、上周考试错题总结
- 上周无测试。
六、其他(感悟、思考等,可选)
在本周的内容中,我了解了多种编译的方式,直接编译、生成库函数、编写makefile代码。而碰到的问题绝大多数都与文件路径有关,这提示我在日常的电脑使用中一定要注意文件的路径,注意不要随意更改一个文件的位置。
七、学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 25篇 | 300小时 | |
第一周 | 54/54 | 1/1 | 13/13 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
- 计划学习时间:XX小时
- 实际学习时间:XX小时
- 改进情况:
(有空多看看现代软件工程 课件 软件工程师能力自我评价表)
参考资料
以上是关于2019-2020-1 20175320 《信息安全系统设计基础》第三周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020-1 20175320 《信息安全系统设计基础》 myod-who-ls功能实现
2019-2020-1 20175310 20175317 20175320 实验二 固件程序设计
2019-2020-1 20175310 20175317 20175320 实验五 通讯协议设计
2019-2020-1 20175310 20175317 20175320 实验三 实时系统