学习日志 姓名: 日期:2018.7.11
|
|
今日学习任务
| 1、了解项目管理的方法及重要性;(项目代码目录结构) 2、熟练掌握 makefile 基本语法的使用;(目标、依赖、命令) 3、企业级 makefile 的编写;(迭代开发) 4、了解 git/github 的使用;(学会管理代码) |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 课上老师让完成的代码已经写完;相关指令也有了一定了解及使用 |
今日开发中出现的问题汇总
| 首先C语言就不是很熟悉,编写代码的问题挺大的;然后对于一些指令也使用还不太熟练,将目录和文件搞混
|
今日未解决问题
|
无 |
今日开发收获 | 学习了用gdb调试; 学习了如何编写makefile(makefile语法三要素:目标体,依赖体,命令)以及企业级makefile;
|
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
| 今天学习进度还是有点紧张的,光听一遍还不能完全理解,在自己操作时还有部分细节不记得 |
其他
| 无 |
#include<stdio.h>
int fuction(int a )
{
return a*a;
}
int main()
{
int i;
int sum=0;
for(i=0;i<=100;i++)
{
sum = sum + i;
}
int result = fuction(3);
printf("result = %d\n",result);
printf("sum = %d\n",sum);
return 0;
}
#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("div = %d\n",div(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;
}
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)