Makefile的一个例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 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)

# $@ 目标文件
# $^ 依赖文件
# $< 第一个依赖文件

猜你喜欢

转载自blog.csdn.net/sinat_30071459/article/details/75417944