刚开始的时候写C/C++是没有makefile概念的,就一个hello.c,编译直接用命令:
g++ hello.c -o hello
编译。
后来随着代码量的增长,用命令一行一行编译已经不现实所以就有了makefile
一开始的makefile是这样的:
start:
g++ hello.c -o hello
clean:
rm hello.o
但是随着后来业务的增长,不同模块的代码要放到对应的目录下去,这时这样的makefile就满足不了需求了,于是有了这样的makefile
X=g++
DIR_SRC=./src
DIR_MAIN=$(DIR_SRC)/main
DIR_UDP=$(DIR_SRC)/udp
DIR_WMN=$(DIR_SRC)/wmn
DIR_OBJ=./obj
SRCS=$(wildcard ${DIR_SRC}/*.cpp) $(wildcard ${DIR_MAIN}/*.cpp) $(wildcard ${DIR_WMN}/*.cpp) $(wildcard ${DIR_UDP}/*.cpp)
OBJS=$(SRCS:.cpp=.o)
EXEC=Hudp
start:$(OBJS)
$(X) -o $(EXEC) $(OBJS)
.cpp.o:
$(X) -o $@ -c $<
clean:
rm -rf $(OBJS)
项目的目录结构如下: