教材学习内容总结

本周的学习主要分三大块:

  • GCC
  • GDB
  • Makefile

我将这三大块的知识点做成了思维导图,如下:

GCC:

2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

GDB:

2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

Makefile:

2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

代码调试中的问题和解决过程

  • 问题1:编译c文件的时候报错
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题1解决方案:
    由于c文件在src目录下,头文件在include目录下,所以直接输入gcc *c -o main会报错。
    应该使用参数-I来指定头文件所在的位置,输入gcc -I/头文件所在路径 *.c -o main才能编译成功。

  • 问题2:
    输入./main后,不能运行代码
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题2解决方案:
    ls语句检验发现src目录下没有生成可执行文件,因此会报错。
    重新执行gcc -I/home/xicyannn/桌面/xcy/include *c -o main语句,用ls语句查看目录下的文件,已经有可执行文件main了。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结
    这时输入./main就可以运行代码了。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题3:
    使用四个函数制作静态库和动态库时都有报错的情况出现。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题3解决方案:
    尚未解决,还在查找资料。

  • 问题4:
    学习调试gdb时,使用finish语句时提示"finish" not meaningful in the outermost frame.
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题4解决方案:
    提示大意是(gdb)在最外面的框架中没有意义。然后我发现我是在main函数中执行的finish语句,而finish语句用于执行完当前的函数,所以应该是在调试除main函数以外的函数时,使用该语句,跳出该函数。所以我在func函数设置了一个断点,然后用r语句执行到该断点处,此时使用finish语句就显示正确了。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题5:
    编辑完Makefile文件之后,运行make语句报错:Makefile:2: *** missing separator。 停止。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

  • 问题5解决方案:
    参考了这篇博客发现是【tab】键的问题。
    一开始我是直接复制的PPT上的代码,在vim编辑器下显示为:
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结
    可能是Windows和Linux的格式不同问题,所以直接复制过来的【tab】键出现了差错。把原来的空格删去然后重新加上【tab】键之后如下图:
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结
    可以看到第二行文字变成了紫色,说明这时的【tab】键才是正确的,此时运行make语句就没有问题了。
    2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

代码托管

2019-2020-1 20175310 《信息安全系统设计基础》第1周学习总结

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 66/66 1/1 10/10

参考资料

相关文章:

  • 2021-12-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
  • 2021-10-08
  • 2021-07-29
  • 2021-08-04
相关资源
相似解决方案