学习日志 姓名:叶圣民 日期:2018年7月11日
|
|
今日学习任务
| 1、了解项目管理的方法及重要性;(项目代码目录结构) 2、熟练掌握 makefile 基本语法的使用;(目标、依赖、命令) 3、企业级 makefile 的编写;(迭代开发) 4、了解 git/github 的使用;(学会管理代码) 5、了解调试器 gdb;(基本调试操作,段错误如何调试) |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量)
1、gdb 的特点有哪些?
gdb (调试器)是Linux GNU计划的工具。
(1)启动被调试程序;
(2)让被调试程序运行;
(3)查看变量值;
例:调试:gcc -g text.c -o text
gdb text
list(反编译);break(断点);
2、分别阐述 run break info break continue finish 命令的作用?
run(执行完程序)先break n 后run(运行时在第n行停住);next或step(执行下一步);info break(查看断点);delete n(删除 第n个点);quit(退出);continue(跳过本次断点运行到下一次断点);finish(跳过本次断点运行,单只运行完子程序);
next 和 step 的区别:next不可进入子程序而step可以;
3、make 工程管理的作用?
一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪 些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操所系统的命令。
4、makefile 的语法是什么?(定义、执行顺序)
在各个子目录和当前目录中建立 mkdir Makefile,用vim对Makefile进行编写;
三要素:目标,依赖,命令;执行命令需要依赖文件,会生成目标文件
格式: 目标:依赖
tab 命令
执行循序:由上而下执行;
5、企业级工程目录是如何创建?分别描述三个不同 makefile 的作用?
总控 Makefile:将各个子目录下的 .o 文件链接生成可执行文件
子目录 Makefile:将目录下的 .c 文件编译生成 .o 文件
scripts 目录下的 Makefile:相当于C语言中的头文件定义了一些变量
今日开发中出现的问题汇总
反编译 list 显示代码不全
对Makefile中的一些命令使用不理解
昨天未解决问题(现已解决):链接:地址和空间分配,重定义和符号决议;统计生成有逻辑的符号表进行地 址和空间分配;分为:静态 和 动态 链接
今日未解决问题
反编译 list 显示代码不全
今日开发收获
通过今日的学习和开发,掌握和熟悉了许多的gdb调试器指令和make工程管理器的编写方法;
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
今天基本完成了开发规范完成既定任务;了解了C语言的错误类型分为:编译时错误(语法)和运行时错误(内存错误 或 总线错误)。
其他
CC := gcc
CFLAGS := -Wall -o3
Lids = -lpthread
Target := cal
Source := $(wildcard src/*.c)
Objs := $(patsubst %.c,%.o,$(Source))
Modules += main add sub mul div
AllObjs := $(addsuffix /src/*.o,$(Modules))
.PHONY:Echo clean
Echo:
@echo "make done!"
clean:
@echo "clean done!"
include ../scripts/Makefile
all : $(Objs)
clean :
rm -rf $(Objs)