执行指令:
1、编译test.c,生成可执行文件test
make test
2、编译test1.c,生成可执行文件test1
make test1
3、编译test.c、test1.c,生成可执行文件test、test1
make
.c文件编译通用模板:
FILES = test.c
FILES_1 = test1.c
EXNAME= test
EXNAME_1= test1
CPPFLAGS= -Wall -g -o0
DEBUG = -DUSE_DEBUG
INCLUDES = -I./include
INCLUDES_1 = -I./include
LIB_NAMES =
LIB_NAMES_1 =
LIB_PATH = -L./lib
LIB_PATH_1 = -L./lib
VERSION =
CC = gcc
OBJ = $(patsubst %.c, %.o, $(FILES))
OBJ_1 = $(patsubst %.c, %.o, $(FILES_1))
TARGET = ./$(EXNAME)
TARGET_1 = ./$(EXNAME_1)
#links
all:$(TARGET) $(TARGET_1)
$(TARGET):$(OBJ)
$(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o $(TARGET)$(VERSION)
@rm -rf $(OBJ)
$(TARGET_1):$(OBJ_1)
$(CC) $(OBJ_1) $(LIB_PATH_1) $(LIB_NAMES_1) -o $(TARGET_1)$(VERSION)
@rm -rf $(OBJ_1)
#compile
%.o: %.c
$(CC) $(INCLUDES) $(DEBUG) -c $(CPPFLAGS) $< -o $@
.PHONY:clean
clean:
@echo 'Remove linked and compiled files......'
rm -rf $(TARGET) output
rm -rf $(TARGET_1) output
cpp文件通用模板
FILES = test.cpp
FILES_1 = test1.cpp
EXNAME= test
EXNAME_1= test1
CPPFLAGS= -Wall -g -o0
DEBUG = -DUSE_DEBUG
INCLUDES = -I./include
INCLUDES_1 = -I./include
LIB_NAMES =
LIB_NAMES_1 =
LIB_PATH = -L./lib
LIB_PATH_1 = -L./lib
VERSION =
CC = g++
OBJ = $(patsubst %.cpp, %.o, $(FILES))
OBJ_1 = $(patsubst %.cpp, %.o, $(FILES_1))
TARGET = ./$(EXNAME)
TARGET_1 = ./$(EXNAME_1)
#links
all:$(TARGET) $(TARGET_1)
$(TARGET):$(OBJ)
$(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o $(TARGET)$(VERSION)
@rm -rf $(OBJ)
$(TARGET_1):$(OBJ_1)
$(CC) $(OBJ_1) $(LIB_PATH_1) $(LIB_NAMES_1) -o $(TARGET_1)$(VERSION)
@rm -rf $(OBJ_1)
#compile
%.o: %.cpp
$(CC) $(INCLUDES) $(DEBUG) -c $(CPPFLAGS) $< -o $@
.PHONY:clean
clean:
@echo 'Remove linked and compiled files......'
rm -rf $(TARGET) output
rm -rf $(TARGET_1) output