makefile通用模板

makefile模板。

# Compiler and flags
CXX = g++
CPPFLAGS = -std=c++11 -Wall -g 
LINK = ar rcs

all: target

LIBS = lib1.a 

INCLUDE_DIR = -I/

#### lib1 ##########
LIB1_DIR = src/lib1_dir
INCLUDE_DIR += -I$(LIB1_DIR)
lib1_cpp = $(wildcard $(LIB1_DIR)/*.cpp)
lib1_o := $(lib1_cpp:.cpp=.o)

lib1.a: ${lib1_o}
	${LINK} $@ $^

# 这是一个通用的模板方法,指示了TARGET_DIR文件夹下的.cpp文件如何生成.o文件。
# $^ 表示所有的依赖项列表。在一个规则中,它会展开为所有在冒号后面出现的依赖项的列表,以空格分隔。
# $@ 表示规则中的目标。在一个规则中,它会展开为规则的目标文件名。
$(LIB1_DIR)/%.o: $(LIB1_DIR)/%.cpp
	${CXX} ${CPPFLAGS} -I${LIN1_INCLUDE} -c $^ -o $@

#### target #########

TARGET_DIR = src/target_dir
target_cpp := $(wildcard $(SERVER_DIR)/*.cpp)
target_o := $(target_cpp:.cpp=.o)

xidserver: ${target_o} ${LIBS}
	${XIDS_CXX} ${XIDS_CPPFLAGS} ${INCLUDE_DIR} -o $@ $^

$(TARGET_DIR)/%.o: $(TARGET_DIR)/%.cpp
	${CXX} ${CPPFLAGS} ${INCLUDE_DIR} -c $^ -o $@

.PHONY: clean

clean:
	rm -f $(LIB1_DIR)/*.o
	rm -f $(TARGET_DIR)/*.o

# 好用的内置方法 
# 可以自动获取SERVER_DIR文件夹下所有cpp文件路径。
target_cpp := $(wildcard $(SERVER_DIR)/*.cpp)
# 可以用来查看xidserver_cpp变量的值,调试的时候非常好用。
$(info "info: $(target_cpp)")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值