#工程目录下
#mkdir bin lib src inc obj dep
#什么都不需要改,只要将Makefile放在bin lib src inc obj dep 文件的同一级目录下即可
#bin放生成的可执行文件
#lib放库文件
#src放.c文件
#inc放.h文件
#obj放生成的中间.o文件
#dep放相关文件所在路径的相关资料
DIR=$(shell pwd)
BIN_DIR=$(DIR)/bin
LIB_DIR=$(DIR)/lib
SRC_DIR=$(DIR)/src
INC_DIR=$(DIR)/inc
OBJ_DIR=$(DIR)/obj
DEP_DIR=$(DIR)/dep
TARGET=$(BIN_DIR)/test
EXTENSION=cpp
OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
DEP=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))
INC=-I $(INC_DIR)
CC=g++
CFLAGS=-Wall -W -g
LDFLAGS=
.PHONY: all clean rebuild
all:$(OBJS)
echo $(DEP_DIR)
$(CC) -o $(TARGET) $(OBJS) $(LDFLAGS) -lmysqlclient
$(DEP_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
$(CC) -MM $(INC) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@ -lmysqlclient
sinclude $(DEP)
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.$(EXTENSION)
$(CC) $< -o $@ -c $(CFLAGS) $(INC) -lmysqlclient
rebuild: clean all
clean:
rm -rf $(OBJS) $(LIB_DIR)/lib* $(BIN_DIR)/*
通用makefile
最新推荐文章于 2019-12-23 09:06:09 发布