CC = gcc
CXX = g++
INCLUDE_DIR += -I.
LIB_DIR += -L./
LIBS += -lpthread
CFLAGS = $(INCLUDE_DIR)
CPPFLAGS := $(INCLUDE_DIR) $(LIB_DIR) $(LIBS)
CPPFLAGS += -std=c++11
LDFLAGS := $(LIB_DIR) $(LIBS) -lstdc++
#当前目录,即makefile所在目录
DIR_PRJ=$(shell cd .;pwd)
C_SRC := $(wildcard $(DIR_PRJ)/*.c)
C_OBJS := $(C_SRC:.c=.o)
CPP_SRC := $(wildcard $(DIR_PRJ)/*.cc)
CPP_OBJS := $(CPP_SRC:.cc=.o)
TARGET = demo
all: $(TARGET)
$(TARGET): $(C_OBJS) $(CPP_OBJS)
$(CC) $(C_OBJS) $(CPP_OBJS) -o $@ $(LDFLAGS)
%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
%.o:%.cc
$(CXX) $(CPPFLAGS) -c $< -o $@
clean:
$(RM) $(C_OBJS) $(CPP_OBJS) $(TARGET)
c和c++混合编译Makefile
最新推荐文章于 2024-05-15 22:54:47 发布