苏嵌//季宇晨//2018.7.11


 

 

 

今日学习任务

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

 

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

2、了解gdb调试器,熟悉他的功能;

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

4、企业级makefile的编丐(迭代开发);

5、了解git/github的使用;

日任务完成情况

 

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

1、掌握了gdb的三个基本功能,学会了使用gdb,例如先创建一个test.c,然后gcc -g test.c -o test,然后用gdb启动调试gdb testtest是可执行程序,其中还掌握了其他一些指令的使用方法,例如,listbreakrunnextcontinuefinish

2、学习了工程管理器make,他是一键编译的;掌握了如何编写makefile,并且知道了他的三要素:目标体、依赖体、命令

3、刚开始我们学习的是单个文件的makefile操作,后来我们又学习了多个文件的makefile操作

学习了三类的makefile:总控的Makefile、子目录下的makefilescripts目录下的Makefile

日开发中出现的问题汇总

 

早上在学习gdb调试器的时候,出现的问题就是会出现段错误,但后来在老师的讲解下解决了,下午在学习makefile的时候出现了挺多问题的,刚开始单个目录操作时还好,后面在多个文件操作时就显得很生疏,很容易把目录,路径搞错,对很多指令,编写都不是很掌握

 

日未解决问题

 

makefile语法还不是很熟悉,对多个文件操作还没有很好的掌握,尤其是对三类makefile,最后老师讲的addsubmuldivmain这个编写也没有完成

日开发收获

学习了调试器gdb的基本操作和makefile语法的使用,尤其是makefile,这个虽然有点难,但是还是很重要的

 

自我评

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 




上午学习情况还不错,对调试器gdb的掌握还可以,下午学习makefile有点吃力,对很多东西都是懵懵懂懂,还需要更多的巩固和学习。

其他

 

多个文件makefile

还是用的add.c sub.c mul.c div.c mian.c 几个程序

 

简便方法:(file

 

执行结果:

基本程序:

三类的makefile:子目录下的makefile:add下的makefile(sub、mul、main、div和他一样)

include ../scripts/Makefile

all : $(Objs)

clean :
 rm -rf $(Objs)

scripts目录下的Makefile:

CC := gcc
CFLAGS := -Wall -O3
Libs = -lpthread
Target := client
Source := $(wildcard src/*.c)
Objs := $(patsubst %.c,%.o,$(Source))
Modules += main add sub mul div log
AllObjs := $(addsuffix /src/*.o,$(Modules))
#check_putin/src/*.o pack_message/src/*.o main/src/*.o

总控的Makefile:

include scripts/Makefile

modules_make = $(MAKE) -C $(1);
modules_clean = $(MAKE) clean -C $(1);

.PHONY: all mm mc clean

all: $(Target)

#Modules += check_putin pack_message main
#AllObjs := $(addsuffix /src/*.o,$(Modules))
#check_putin/src/*.o pack_message/src/*.o main/src/*.o
mm:
 @ $(foreach n,$(Modules),$(call modules_make,$(n)))
mc:
 @ $(foreach n,$(Modules),$(call modules_clean,$(n)))

$(Target) : mm
 $(CC) $(CFLAGS) -o $(Target) $(AllObjs) $(Libs)
 #gcc -Wall -O3 -o client check_putin/src/*.o main/src/*.o pack_message/src/*.o -lpthread
 @ echo $(Target) make done!

clean : mc
 rm -rf $(Target)
 @ echo clean done!

子目录为简单的加减乘除




猜你喜欢

转载自blog.csdn.net/xbackjyc/article/details/81006446