叶圣民//2018.07.11.

学习日志                  姓名:叶圣民      日期:2018年7月11日


 

 

 

 今日学习任务

 

1、了解项目管理的方法及重要性;(项目代码目录结构)

2、熟练掌握 makefile 基本语法的使用;(目标、依赖、命令)

3、企业级 makefile 的编写;(迭代开发)

4、了解 git/github 的使用;(学会管理代码)                                                                     5了解调试器 gdb;(基本调试操作,段错误如何调试)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

扫描二维码关注公众号,回复: 2118951 查看本文章

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

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)



猜你喜欢

转载自blog.csdn.net/qq_31421117/article/details/81005314