苏嵌//杨曼曼//2018.7.11

 

 

 

今日学习任务

 

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

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

3. 企业级makefile的编写;

4. gdb的功能和相关命令。

今日任务完成情况

 

 

今日任务按计划完成

1. gdb的功能和相关命令;

2. 编写makefile文件,掌握它的常用指令;

今日开发中出现的问题汇总

 

1. 对makefile的编写没有熟练掌握,对一些语句还是会混肴;

2.记不牢固相关语句导致编写效率低。

 

今日未解决问题

 

今日开发收获

今天学习了gdb的概念和功能,以及breaklist等语句的使用,重点了解了工程管理器的用处以及makefile的编写。

 

自我评价

 

 

 

今天跟随老师学习了gdb的概念和功能,以及breaklist等语句的使用,重点了解了工程管理器的用处以及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!

scriptsMakefile

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)

猜你喜欢

转载自blog.csdn.net/cxkkkkk0802/article/details/81006597