一個較全的Makefile例子

CC = gcc
CFLAGS = -std=gnu99 -ggdb -D_BSD_SOURCE

CFLAGS += -Wl,-rpath=./lib -L./lib    #動態庫鏈接路徑
LIBS = zlog pthread   #指定需要鏈接的庫的名字
INCLUDES = ./kernel ./algorithm ./include  #指定頭文件路徑
SUB_DIR = kernel algorithm

TARGET = server
SRCS = $(wildcard *.c $(addsuffix / *.c,$(SUB_DIR)))
OBJS = $(patsubst %.c,%.o,$(SRCS))

RM = rm -f
CFLAGS += -MMD -MF $(patsubst ./%, %, $(patsubst %.o, %.d, $(dir $@).$(no
/ tdir $@))) $(addprefix -I, $(INCLUDES))   #自動生成依賴保存到.d文件

$(TARGET):$(OBJS)
        $(CC) -o $(TARGET) $(OBJS) $(CFLAGS) $(addprefix -l, $(LIBS))
clean:
        $(RM) $(TARGET) $(OBJS)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章