| |
今日学习任务
| 1. 了解项目管理的方法及重要性(项目代码目录结构); 2. 熟练掌握makefile基本语法的使用(目标、依赖、命令) 3. 企业级makefile的编写; 4. gdb的功能和相关命令。 |
今日任务完成情况
| 今日任务按计划完成 1. gdb的功能和相关命令; 2. 编写makefile文件,掌握它的常用指令; |
今日开发中出现的问题汇总
| 1. 对makefile的编写没有熟练掌握,对一些语句还是会混肴; 2.记不牢固相关语句导致编写效率低。 |
今日未解决问题
| 无 |
今日开发收获 | 今天学习了gdb的概念和功能,以及break、list等语句的使用,重点了解了工程管理器的用处以及makefile的编写。 |
自我评价
| 今天跟随老师学习了gdb的概念和功能,以及break、list等语句的使用,重点了解了工程管理器的用处以及makefile的编写,按照老师制定的学习任务进行学习。 |
其他
| 无 |
代码:
#include<stdio.h>
int main()
{
printf("add = %d\n",add(6,3));
printf("sub = %d\n",sub(6,3));
printf("mul = %d\n",mul(6,3));
printf("dev = %d\n",dev(6,3));
return 0;
}
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}
int div(int a, int b)
{
return a / b;
}
相关命令:
|-- Makefile
|-- add
| |-- Makefile
| `-- src
| |-- add.c
| `-- add.o
|-- check-putin
| |-- Makefile
| `-- src
| |-- check_putin.c
| `-- check_putin.o
|-- div
| |-- Makefile
| `-- src
| |-- div.c
| `-- div.o
|-- hello
|-- include
| `-- myhead.h
|-- log
| |-- Makefile
| `-- src
| |-- log.c
| `-- log.o
|-- main
| |-- Makefile
| `-- src
| |-- main.c
| `-- main.o
|-- mul
| |-- Makefile
| `-- src
| |-- mul.c
| `-- mul.o
|-- pack_message
| |-- Makefile
| `-- src
| |-- pack_message.c
| `-- pack_message.o
|-- scripts
| `-- Makefile
`-- sub
|-- Makefile
`-- src
|-- sub.c
`-- sub.o
主控Makefile:
include scripts/Makefile
modules_make = $(MAKE) -C $(1);
modules_clean = $(MAKE) clean -C $(1);
.PHONY: all mm mc clean
all: $(Target)
mm:
@ $(foreach n,$(Modules),$(call modules_make,$(n)))
mc:
@ $(foreach n,$(Modules),$(call modules_clean,$(n)))
$(Target) : mm
$(CC) $(CFLAGS) -o $(Target) $(AllObjs) $(Libs)
@ echo $(Target) make done!
clean : mc
rm -rf $(Target)
@ echo clean done!
scripts的Makefile:
CC := gcc
CFLAGS := -Wall -O3
Libs = -lpthread
Target := client
Source := $(wildcard src/*.c)
Objs := $(patsubst %.c,%.o,$(Source))
Modules += main log add sub mul div main
AllObjs := $(addsuffix /src/*.o,$(Modules))
子目录Makefile:
include ../scripts/Makefile
all : $(Objs)
clean :
rm -rf $(Objs)
代码:#include<stdio.h>
int main()
{
printf("add = %d\n",add(6,3));
printf("sub = %d\n",sub(6,3));
printf("mul = %d\n",mul(6,3));
printf("dev = %d\n",dev(6,3));
return 0;
}
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}
int div(int a, int b)
{
return a / b;
}
相关命令:
|-- Makefile
|-- add
| |-- Makefile
| `-- src
| |-- add.c
| `-- add.o
|-- check-putin
| |-- Makefile
| `-- src
| |-- check_putin.c
| `-- check_putin.o
|-- div
| |-- Makefile
| `-- src
| |-- div.c
| `-- div.o
|-- hello
|-- include
| `-- myhead.h
|-- log
| |-- Makefile
| `-- src
| |-- log.c
| `-- log.o
|-- main
| |-- Makefile
| `-- src
| |-- main.c
| `-- main.o
|-- mul
| |-- Makefile
| `-- src
| |-- mul.c
| `-- mul.o
|-- pack_message
| |-- Makefile
| `-- src
| |-- pack_message.c
| `-- pack_message.o
|-- scripts
| `-- Makefile
`-- sub
|-- Makefile
`-- src
|-- sub.c
`-- sub.o
主控Makefile:
include scripts/Makefile
modules_make = $(MAKE) -C $(1);
modules_clean = $(MAKE) clean -C $(1);
.PHONY: all mm mc clean
all: $(Target)
mm:
@ $(foreach n,$(Modules),$(call modules_make,$(n)))
mc:
@ $(foreach n,$(Modules),$(call modules_clean,$(n)))
$(Target) : mm
$(CC) $(CFLAGS) -o $(Target) $(AllObjs) $(Libs)
@ echo $(Target) make done!
clean : mc
rm -rf $(Target)
@ echo clean done!
scripts的Makefile:
CC := gcc
CFLAGS := -Wall -O3
Libs = -lpthread
Target := client
Source := $(wildcard src/*.c)
Objs := $(patsubst %.c,%.o,$(Source))
Modules += main log add sub mul div main
AllObjs := $(addsuffix /src/*.o,$(Modules))
子目录Makefile:
include ../scripts/Makefile
all : $(Objs)
clean :
rm -rf $(Objs)