📜  makefile 参数 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:02:50.962000             🧑  作者: Mango

Makefile 参数 - Shell/Bash

Makefile是一种类似于脚本语言的工具,用于自动化编译和构建软件。随着软件的复杂性越来越高,Makefile变得越来越重要,因为它可以帮助程序员自动化执行一些常见的、繁琐的任务,使他们能够更加专注于编写代码。

本文将介绍Makefile的一些常见参数,以及它们在Shell/Bash中的用法。

1. $( )

这个符号用于引用变量。例如,假设你定义了一个变量MY_VAR,那么你可以使用$(MY_VAR)来引用它。下面是一个简单的示例:

MY_VAR := hello
all:
    echo $(MY_VAR)

当你运行make命令时,它将输出hello并结束。

2. $@

这个符号用于引用当前规则的目标。例如,如果你的规则定义了一个目标main,那么你可以使用$@来引用它。下面是一个示例:

main: main.o
    gcc -o $@ $<

这个规则告诉Makefile,如果你想要生成main这个目标,你需要首先生成main.o,然后编译main.c文件并链接它们。$@在这里就是指main这个目标名称。

3. $<

这个符号用于引用当前规则的第一个依赖项。例如,如果你的规则定义了一个目标main.o以及一个依赖项main.c,那么你可以使用$<来引用它。下面是一个示例:

main.o: main.c
    gcc -c -o $@ $<

这个规则告诉Makefile,如果你想要生成main.o这个目标,你需要首先生成main.c文件,并将它编译成一个目标文件。$<在这里就是指main.c这个依赖项。

4. $(shell )

这个符号用于执行Shell命令,并将结果返回给Makefile。例如,你可以使用它来获取当前的日期和时间。下面是一个示例:

DATETIME := $(shell date)
all:
    echo $(DATETIME)

当你运行make命令时,它将输出当前的日期和时间。

5. $(wildcard )

这个符号用于搜索文件系统,查找符合某个模式的文件,并将它们返回给Makefile。例如,你可以使用它来查找当前目录下所有的.c文件。下面是一个示例:

SRCS := $(wildcard *.c)
all:
    echo $(SRCS)

当你运行make命令时,它将输出所有的.c文件列表。

以上就是Makefile中一些常用的Shell/Bash参数,你可以在你的项目中使用它们来实现自动化编译和构建。