zoukankan      html  css  js  c++  java
  • 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就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    参考资料

  • 相关阅读:
    S4全球总决赛(2)南邮NOJ2059
    S4全球总决赛(2)南邮NOJ2059
    S4全球总决赛(1) 南邮NOJ
    S4全球总决赛(1) 南邮NOJ
    S4全球总决赛(1) 南邮NOJ
    【Linux】鸟哥的Linux私房菜基础学习篇整理(五)
    【Linux】鸟哥的Linux私房菜基础学习篇整理(四)
    【HDOJ】2428 Stars
    【Linux】鸟哥的Linux私房菜基础学习篇整理(三)
    【Linux】鸟哥的Linux私房菜基础学习篇整理(二)
  • 原文地址:https://www.cnblogs.com/nameless-student/p/11568381.html
Copyright © 2011-2022 走看看