经常用到的三个函数 $(wildcard pattern) $(patsubst pattern, replacement, text) $(shell cmd)
.PHONY:clean
CC=gcc
CFLAGS= -Wall -g
BIN=main_exe
ROOTSRC=$(wildcard *.c)
ROOTOBJ=$(patsubst %.c, %.o, $(ROOTSRC))
SUBDIR=$(shell ls -d */)
SUBSRC=$(shell find $(SUBDIR) -name '*.c')
SUBOBJ=$(SUBSRC:%.c=%.o)
$(BIN):$(ROOTOBJ) $(SUBOBJ)
$(CC) $(CFLAGS) $^ -o $@
%.o:%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(BIN) $(ROOTOBJ) $(SUBOBJ)
本文介绍了一种使用Makefile进行项目构建的方法,包括如何利用wildcard、patsubst及shell函数来自动化编译过程。该方法适用于拥有多个源文件夹的项目,能够通过Makefile自动收集所有.c文件并进行编译。
1015

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



