Makefile
TARGET = factory
CC=g++
DIR = $(shell pwd)
DIR_OBJ = $(DIR)/obj
DIR_SRC = $(DIR)/src
DIR_INC = $(DIR)/inc
SRC = $(wildcard $(DIR_SRC)/*.cpp)
SRC_NO_DIR = $(notdir $(SRC))
SRC_OBJ = $(patsubst %cpp, %o, $(SRC_NO_DIR))
INC = -I$(DIR_INC) \
FLAG = -g
all:$(TARGET)
@echo "======= all make successs ======="
$(TARGET):$(addprefix $(DIR_OBJ)/, $(SRC_OBJ))
$(CC) -o $@ $^ $(INC) $(FLAG)
@echo "======= Linux make successs ======="
$(DIR_OBJ)/%.o:$(DIR_SRC)/%.cpp
@mkdir -p $(DIR_OBJ)
$(CC) -c $< -o $@ $(INC) $(FLAG)
.PHONY:clean
clean:
-rm -rf $(DIR_OBJ)
-rm $(TARGET)
@echo "======= make clean success ======="
build.sh
#!/bin/sh
make clean
make
C++版本
简单工厂
C版本