makefile 将所有目录中的源文件编译成独立程序

警告
本文最后更新于 2019-03-24,文中内容可能已过时。

makefile 是一款功能强大的工程项目管理套件,可以根据各个文件之间的依赖关系,自动生成事物处理的完整流程。我们现在有一个要求:使用 make 来一次性的把目录下的所有源文件编译成单独可运行的程序。

搜索目录总的所有源文件

使用通配符(wildcard)来获取当前目录总的所有 .cpp 文件

1
SRCS = $(wildcard *.cpp)

指定编译成相应名称的独立程序

1
PROGS = $(patsubst %.cpp, %, $(SRCS))

执行相应的功能

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# 自动完成编译过程

CC      = g++
CFLAGS  = -ggdb3 -std=c++11 -Wall
SRCS    = $(wildcard *.cpp)
PROGS   = $(patsubst %.cpp, %, $(SRCS))
.PHONY: all info clean

all: $(PROGS)

%: %.cpp
	$(CC) $(CFLAGS) -o $@ $<

info:
	@echo "all source files..."
	@echo $(SRCS)
	@echo "all target programms..."
	@echo $(PROGS)

clean:
	rm -f $(PROGS)

make

相关内容

william 支付宝支付宝
william 微信微信
0%