Makefile
Makefile 是一个用于构建和管理软件项目的文件,它包含了一系列规则和指令,用于描述源代码文件之间的依赖关系和构建过程。
Makefile 是用于构建和管理软件项目的工具,它主要用于自动化构建过程。
Makefile 更适用于构建和管理软件项目,特别是在多文件、多模块的项目中
Shell 脚本是一种脚本语言,用于编写一系列的命令和操作,以便在命令行环境下执行。
Shell 脚本更适用于系统管理、自动化操作和批处理任务。
Linux下使用Makefile
$的作用
$@
:表示目标文件(Target),即规则中的目标。$<
:表示第一个依赖文件(Dependency),即规则中的依赖文件。$?
:表示所有比目标文件更新的
例子
例如,在以下规则中:
makefile
run: $(OBJ)
$(CC) $(OPTIONS) $@ $^
$@
将会被展开为 run
,即目标文件的名称。
$^
表示所有的依赖文件(Prerequisites)。在上述规则中,它指的是 $(OBJ)
,即目标文件所依赖的文件列表。
$<
表示第一个依赖文件(First Prerequisite)。在规则中,如果有多个依赖文件,$<
将会展开为第一个依赖文件的名称。
%的作用
相当于 C语言在中的 *
通配符
makefile
CC=gcc
RM=rm
OBJ=start.o pow2.o pow3.o abs1.o
CFLAGES=-c
OPTIONS=-o
run:$(OBJ)
$(CC) $(OPTIONS) $@ $^
%.o:%.c %.h
$(CC) $(CFLAGES) $<
clean:
$(RM) -rf *.o