makefile编译一个目录下的文件

1、该目录下所有的文件都单独为可执行程序:

CC := g++
CFLAGS := \
          -m32 -ggdb3 -pipe -Wall -fPIC -MMD -MP -D_REENTRANT -D_GNU_SOURCE -pthread
INC = -L./
LIB = -lm\
       -lpthread
          
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %.cpp,%,$(SRCS))

.PHONY:all clean
all:$(OBJS)

%:%.cpp
	@echo "正在编译:" $<"---->"$@
	$(CC) -o $@ $(CFLAGS) $< $(INC) $(LIB)

clean:
	rm -rf $(OBJS) *.d *.o

2、该目录下所有文件一起编译为一个可执行程序:

CC := g++
CFLAGS := -g
TARGET := micro_httpd
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %cpp,%o,$(SRCS))

all:$(TARGET)

%.o:%.cpp
	$(CC) $(CFLAGS) -c $<

$(TARGET):$(OBJS)
	$(CC) $(CFLAGS) -o $@ $^

clean:
	rm -rf $(TARGET) *.o


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章