2014025653《嵌入式程序设计》第二周学习总结
2014025653《嵌入式程序设计》第二周学习总结
在第二周的学习过程中,我进一步学习了vi编译器,还学到了gdb调试器的应用和makefile编译器的用法。
教材学习总结
gcc学习总结
gcc是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。
gcc编译流程分为4个步骤:预处理、编译、汇编和连接。
1.gcc库选项列表

2.gcc告警和出错选项列表

3.gcc体系结构相关选项

库:函数库一般分为静态库和动态库两种,静态库是一系列的目标文件(.o文件)的归档文件(文件名格式为libname.a),静态库在程序编译时会从中提取出它所需要的目标文件并直接复制到该程序的可执行文件之中;动态库在程序编译时并不会被链接到目录代码中,而是在程序运行时才被载入。
gdb学习总结
gdb定义:gdb是GCC的调试工具。
gdb的四大功能:
1.启动程序,可以按照自定义要求随心所欲的运行程序;
2.可让被调试程序在所指定的调置断点处停住(断点可以是条件表达式);
3.当程序被停住时,可以检查程序中所发生的事;
4.动态改变程序的执行环境。
使用方法:
编译gcc -g test.c -o test
启动gdb:gdb test
查看文件:list
设置断点:b 6 (直接在b后面输入行号就行)
查看断点情况:info b
运行代码:run
查看变量值:p n (直接输入p+变量值就行)
单步运行:n
恢复程序运行:c
1.gdb工作环境相关命令

2.gdb设置断点和恢复运行的相关命令

3.gdb中源码查看的相关命令

4.gdb查看运行数据的相关命令

makefile编译器学习总结
makefile的定义:Makefile是一种配置文件, Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
1.makefile中常见的预定义变量

2.makefile常见的自动变量

3.makefile常见的隐式规则目录

实验总结
使用vi编辑hello.h、starfun.h、hello.c、star.c四个程序文件,使用gcc编译器,编译程序,gdb进行调试。



使用动态库和静态库



gdb调试





makefile编译器

makefile文件里面写

运行

makefile1文件里面写


其他(感悟、思考等,可选)
通过本周学习,我学会了vi编译,gdb调试器的应用和makefile编译器的应用。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 9篇 | 180小时 | 熟悉了Linux,vi,gcc |
| 第一周 | 200/200 | 1/1 | 20/20 | 学会应用vi、gdb和makefile |
| 第二周 | 400/600 | 1/2 | 20/40 | |
| 第三周 | 600/1200 | 1/3 | 20/60 | |
| 第四周 | 800/2000 | 1/4 | 20/80 | |
| 第五周 | 800/2800 | 1/5 | 20/100 | |
| 第六周 | 600/3200 | 1/6 | 20/120 | |
| 第七周 | 600/2800 | 1/7 | 20/140 | |
| 第八周 | 600/4400 | 1/8 | 20/160 | |
| 第九周 | 600/5000 | 1/9 | 20/180 |
参考资料
- 《嵌入式应用程序设计》学习指导
- 《Linux操作系统实用教程》

浙公网安备 33010602011771号