Makefile实例:
SVR_NAME := svr_name
INCPATH += \
-I../common/ \
USRLIBS += \
-L../common/ -lcommon \
OBJS := $(addsuffix .o, $(patsubst %.cpp, %, $(wildcard *.cpp)))
all: $(SVR_NAME)
$(SVR_NAME): $(OBJS)
g++ -g $^ $(USRLIBS)-o $@ -lpthread
%.o:%.cpp
g++ -g -c $< $(INCPATH)
clean:
rm -frv $(OBJS) $(SVR_NAME)
关于addsuffix, patsubst, wildcard等的用法可以参考:
http://blog.sina.com.cn/s/blog_adc0f78a0101843h.html
https://my.oschina.net/u/1413984/blog/199029
关于$@、 $^、 $< 的用法可以参考:
如果要编译出.a文件,Makefile实例
LIBNAME = libcommon.a
OBJS := $(addsuffix .o, $(patsubst %.cpp, %, $(wildcard *.cpp)))
all : $(LIBNAME)
$(LIBNAME) : $(OBJS)
ar cr $@ $(OBJS)
%.o : %.cpp
g++ -g -c $<
clean:
rm $(OBJS) $(LIBNAME)