makefile模板

文件名 makefile或者Makefile
makefile中的第一条是主线,其余的规则都是为了第一条服务
语法格式:
目标文件:依赖文件
命令
命令前需要tab缩进

#main: main.cpp http_conn.cpp thread_pool.cpp sync.cpp
#	g++ $^ -lpthread -o $@

src = $(wildcard ./*.cpp) # 获取当前目录下所有.cpp文件
objs = $(patsubst %.cpp, %.o, $(src)) # 字符串替换,将.cpp替换为.o,%表示任意字符串
target = main

$(target): $(objs)
	$(CXX) $^ -lpthread -o $@ 
# $(CXX) 代表g++
# $^ 表示所有的依赖文件
# $@ 表示要生产的目标

#%.o:%.cpp
#	$(CXX) -c $< -o $@

sync.o: sync.cpp
#$<表示第一个依赖
	$(CXX) -c $< -lpthread -o $@
main.o: main.cpp
	$(CXX) -c $< -o $@
http_conn.o: http_conn.cpp
	$(CXX) -c $< -o $@

.PHONY:clean  # clean不是一个要生成的文件,假目标
clean:
	rm *.o -f
posted @ 2022-08-13 15:44  ecnu_lxz  阅读(95)  评论(0编辑  收藏  举报