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


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