《信息安全系统设计基础》第三周学习总结
-1 5320 信息安全系统设计基础第三周学习总结 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/541/113/13尝试一下记录计划学习时间和实际学习时间,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。 耗时估计的公式 :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。参考:软件工程软件的估计为什么这么难,软件工程 估计方法· 计划学习时间:XX小时· 实际学习时间:XX小时· 改进情况:(有空多看看现代软件工程 课件 软件工程师能力自我评价表)参考资料· 深入理解计算机系统V3学习指导转载于: -全文完-