苏嵌 项目实战
学习日志 姓名:张福辉 日期:2018.7.11
今日学习任务
|
1、 了解项目管理的方法及重要性; (项目代码目录结构) |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) |
今日任务全部完成 1.掌握了gdb的使用 2.掌握了makefile的使用 3.掌握了企业级makefile的编写 |
今日开发中出现的问题汇总
|
1.gdb调试时list只能看一次 |
今日未解决问题
|
无 |
今日开发收获 |
1.掌握了gdb调试器的使用 2.学会了makefile的使用和企业级makefile的编写 |
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
|
能够按规范完成既定任务 |
其他
|
无 |
企业级makefile Demo:
文件排布:
.
|-- Makefile
|-- add
| |-- Makefile
| `-- src
| |-- add.c
| `-- add.o
|-- client
|-- div
| |-- Makefile
| `-- src
| |-- div.c
| `-- div.o
|-- main
| |-- Makefile
| `-- src
| |-- main.c
| `-- main.o
|-- mul
| |-- Makefile
| `-- src
| |-- mul.c
| `-- mul.o
|-- scripts
| `-- Makefile
`-- sub
|-- Makefile
`-- src
|-- sub.c
`-- sub.o
scripts的Makefile
1 CC := gcc
2 CFLAGS := -Wall -O3
3 Libs = -lpthread
4 Target := client
5 Source := $(wildcard src/*.c)
6 Objs := $(patsubst %.c,%.o,$(Source))
7 Modules += add sub mul div main
8 AllObjs := $(addsuffix /src/*.o,$(Modules))
主控Makefile
1 include scripts/Makefile
2
3 modules_make = $(MAKE) -C $(1);
4 modules_clean = $(MAKE) clean -C $(1);
5
6 .PHONY: all mm mc clean
7
8 all: $(Target)
9
10 mm:
11 @ $(foreach n,$(Modules),$(call modules_make,$(n)))
12 mc:
13 @ $(foreach n,$(Modules),$(call modules_clean,$(n)))
14
15 $(Target) : mm
16 $(CC) $(CFLAGS) -o $(Target) $(AllObjs) $(Libs)
17 @ echo $(Target) make done!
18
19 clean : mc
20 rm -rf $(Target)
子目录Makefile
1 include ../scripts/Makefile
2
3 all : $(Objs)
4
5 clean :
6 rm -rf $(Objs)
子目录为加减乘除的简单函数,主函数为输出一组加减乘除值