将C和C++文件混合在一起编译成可执行文件test,Makefile文件如下:
BIN=test
CC=gcc
CPP=g++
CFLAGS=-DxDEBUG
CPPFLAGS=-DxDEBUG
LDFLAGS=-lstdc++ #解决错误undefined reference to `__gxx_personality_v0' .
LIBS=
INCS=-I./../inc/ #头文件目录
CSRCS:=$(wildcard *.c ../plat/*.c) #.c文件目录
COBJS:=$(CSRCS:.c=.o)
CPPSRCS:=$(wildcard *.cpp ../plat/*.cpp) #.cpp文件目录
CPPOBJS:=$(CPPSRCS:.cpp=.o)
all:$(BIN)
$(COBJS) : %.o: %.c
$(CC) -c $< -o $@ $(INCS) $(CFLAGS)
$(CPPOBJS) : %.o: %.cpp
$(CPP) -c $< -o $@ $(INCS) $(CPPFLAGS)
$(BIN):$(COBJS) $(CPPOBJS)
$(CC) -o $(BIN) $(COBJS) $(CPPOBJS) $(LIBS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
clean:
rm $(BIN) $(COBJS) $(CPPOBJS)