## 一般通用Makefile模板
CC = gcc
CXX = g++
CFLAGS = -Wall -g -O2
TARGET = myTest
SRCDIR = .
SOURCES = $(wildcard $(SRCDIR)/*.c $(SRCDIR)/*.cpp $(SRCDIR)/*.s)
OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
LDFLAG = -lstdc++ -lpthread
INCLUDE = -I. -I../inc
EXTLIBS = -L./../../../lib/LOCAL/ -ltinyxml
ifeq ($(SERVER),KONTRON)
CFLAGS += -DKONTRON=1
endif
ifeq ($(PROJECT),SHENHANG)
CFLAGS += -DSHENHANG=1
endif
%.o: %.c
$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
%.o:%.cpp
$(CXX) $(CFLAGS) $(INCLUDE) -c $< -o $@
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CC) $(OBJS) -o $@ $(LDFLAG) $(EXTLIBS) $(INCLUDE)
clean:
rm -f *.o $(TARGET)
1、SOURCES = $(wildcard $(SRCDIR)/*.c $(SRCDIR)/*.cpp $(SRCDIR)/*.s)
获取当前目录下的c、cpp、s的代码
2、OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
将*.c替换为*.o ,*.cpp替换为*.o的文件