版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_30071459/article/details/75417944
.PHONY:all clean #伪目标文件
CPPFLAG=-g -Werror -Wall
LDFLAG=-L -lsocket
INCFLAG=-I /usr/include/lua
# 将目录下.cpp文件编译成.o文件,当前目录下的.h文件不需要指定
%.o:%.cpp
g++ -c $(CPPFLAG) $< $(INCFLAG) -o $@
SUB_MODULES=. lua_bit
#foreach 得到.和lua_bit目录下所有.cpp文件名
ALL_SRC = $(foreach dir,$(SUB_MODULES),$(wildcard $(dir)/*.cpp))
ALL_OBJ = $(ALL_SRC:.cpp=.o) #将.cpp替换成.o
TARGET = main #目标文件名
all:$(TARGET)
$(TARGET):$(ALL_OBJ)
g++ -o $@ $^ $(LDFLAG)
clean:
rm -rf $(ALL_OBJ) $(TARGET)
# $@ 目标文件
# $^ 依赖文件
# $< 第一个依赖文件