欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Makefile的一个例子

程序员文章站 2022-04-08 14:50:11
...
.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 [email protected] 

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 [email protected] $^ $(LDFLAG)

clean:
	rm -rf $(ALL_OBJ) $(TARGET)

# [email protected] 目标文件
# $^ 依赖文件
# $< 第一个依赖文件