Skip to content

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

Released under the MIT License.