1、vpath <pattern> <directories>
为符合pattern的文件指定directories的搜索路径
详细链接
vpath %.c ../src
CC = gcc
CXX = g++
OBJS = \
main.o
TAR = demo
INCLUDE = ../include
LIBS = -lsqlite3
LIB_DIR = -L.
FLAGS = -Wall -g -c
.PHONY = clean
$(TAR):$(OBJS)
$(CC) $(OBJS) -o ../$(TAR) $(LIBS)
%.o:%.c
$(CC) $(FLAGS) $< -o $@
clean:
rm -rf *.o
rm -rf ../$(TAR)
2、wildcard 扩展通配符
src=$(wildcard *.c ./src/*.c)
获取sub目录下所有的.c文件
SRCS = $(wildcard *.c ../src/*.c)
OBJS = $(patsubst %.c, %.o, $(SRCS))
CC = gcc
CXX = g++
TAR = demo
INCLUDE = ../include
LIBS = -lsqlite3
LIB_DIR = -L.
FLAGS = -Wall -g -c
.PHONY = clean
$(TAR):$(OBJS)
$(CC) $(OBJS) -o ../$(TAR) $(LIBS)
%.o:%.c
$(CC) $(FLAGS) $< -o $@
clean:
rm -rf *.o
rm -rf ../$(TAR)