Makefile函数的使用(1)

简介: Makefile函数的使用(1)

Makefile函数的使用

Makefile 是一个用于自动化编译程序的工具,它允许用户定义一系列规则以描述文件之间的依赖关系,并指定如何生成目标文件。Makefile 中的函数可以帮助用户在规则中执行各种操作,例如文件操作、字符串处理等。下面是几个常用的 Makefile 函数及其使用示例:

1. $(shell ...)

该函数用于在 Makefile 中执行 shell 命令,并返回其输出结果。

# 示例:获取当前时间并赋值给变量

CURRENT_TIME := $(shell date)

 

# 示例:列出当前目录下的所有文件

FILES := $(shell ls)

 

2. $(wildcard ...)

该函数用于匹配文件名模式,并返回匹配的文件列表。

# 示例:获取当前目录下所有的 .c 文件

C_FILES := $(wildcard *.c)

 

# 示例:获取当前目录及其子目录下所有的 .h 文件

H_FILES := $(wildcard *.h */*.h)

 

3. $(foreach ..., ..., ...)

该函数用于迭代处理列表中的每个元素。

# 示例:打印列表中的每个文件名

FILES := file1.c file2.c file3.c

$(foreach file,$(FILES),$(info $(file)))

 

4. $(subst ..., ..., ...)

该函数用于替换字符串中的子字符串。

# 示例:将文件名中的 .c 替换为 .o

OBJ_FILES := $(subst .c,.o,$(C_FILES))

 

5. $(addprefix ..., ...)

该函数用于给列表中的每个元素添加前缀。

# 示例:给所有 .c 文件添加路径前缀

SRC_FILES := file1.c file2.c file3.c

ALL_FILES := $(addprefix src/,$(SRC_FILES))

 

6. $(addsuffix ..., ...)

该函数用于给列表中的每个元素添加后缀。

# 示例:给所有文件添加 .obj 后缀

OBJ_FILES := $(addsuffix .obj,$(FILES))

 

7. $(if ..., ..., ...)

该函数用于条件判断。

# 示例:根据条件编译不同的代码

DEBUG := 1

ifeq ($(DEBUG),1)

   CFLAGS := -g

else

   CFLAGS := -O2

endif

 

这些示例展示了 Makefile 函数的一些常见用法,可以帮助用户更灵活地管理和处理文件、变量等内容。通过结合这些函数,可以构建出更复杂、更灵活的 Makefile 规则,以满足各种编译和构建需求。

相关文章
|
开发工具 C语言
Makefile 使用(1)
Makefile 使用(1)
125 0
1.10~1.12 Makefile
1.10~1.12 Makefile
98 0
1.10~1.12 Makefile
|
编译器 C语言 C++
Makefile中常见的gcc编译参数
Makefile中常见的gcc编译参数
440 0
|
IDE Linux Shell
【Makefile】简单的Makefile编写
【Makefile】简单的Makefile编写
Makefile第四讲:include 引用其它makefile文件
main.cpp #include "classes/fun.h" int main() { Test::display("Hello makefile"); return 0; } classes/fun.
1156 0