文章目录
1 可以在小项目中使用的makefile
代码目录:

makefile如下:
#ARCH ?= x86
ifeq ($(ARCH), x86)
CC = gcc
else
CC = arm-linux-gnueabihf-gcc
endif
TARGET = mp3
BUILD_DIR = build
SRC_DIR = src module
INC_DIR = include
CFLAGS = $(patsubst %, -I%, $(INC_DIR))
INCLUDES = $(foreach dir, $(INC_DIR), $(wildcard $(dir)/*.h))
SOURCES = $(foreach dir, $(SRC_DIR), $(wildcard $(dir)/*.c))
OBJS = $(patsubst %.c, $(BUILD_DIR)/%.o, $(notdir $(SOURCES)))
VPATH = $(SRC_DIR)
$(BUILD_DIR)/$(TARGET) : $(OBJS)
$(CC) $^ -o $@
$(BUILD_DIR)/%.o : %.c $(INCLUDES) | create_build
$(CC) -c $< -o $@ $(CFLAGS)
.PHONY : clean create_build
clean :
rm -rf $(BUILD_DIR)
create_build :
mkdir -p $(BUILD_DIR)
需要注意两点:
- VPATH用来告诉编译器依赖的搜索路径。
- |后面为order-only依赖,只在第一次构建的时候执行一次(构建是指每次执行makefile)。
参考资料:
327

被折叠的 条评论
为什么被折叠?



