makefile $@
时间: 2023-08-09 17:11:02 浏览: 71
在 Makefile 中,"$@" 是一个自动化变量,表示当前规则的目标文件。它可以用于指定规则的目标文件名字。例如,如果你有一个规则如下:
```makefile
foo: bar.c baz.c
gcc -o $@ $^
```
这个规则表示要生成名为 "foo" 的可执行文件,它依赖于 "bar.c" 和 "baz.c" 这两个源文件。在规则的命令行中,"$@" 将会被展开为当前规则的目标文件名 "foo","$^" 则表示所有的依赖文件列表,即 "bar.c baz.c"。
因此,上述的规则会被展开为以下的命令:
```shell
gcc -o foo bar.c baz.c
```
这样就会通过 gcc 编译器将 "bar.c" 和 "baz.c" 编译成一个名为 "foo" 的可执行文件。
相关问题
makefile $@
在Makefile中,`$@`是一个自动化变量,表示当前规则的目标文件。它在规则中被展开为目标文件的名称。例如,如果有一个规则如下:
```
app: main.c utils.c
gcc -o $@ $^
```
在这个规则中,`$@`会被展开为`app`,表示目标文件是`app`。这样,`gcc -o $@ $^`命令将编译`main.c`和`utils.c`,并将生成的可执行文件命名为`app`。
请注意,在Makefile中使用`$@`时,必须使用Tab键进行缩进,而不是空格。
makefile $@的意思
在 Makefile 中,"$@" 表示规则中的目标文件(Target),即当前规则将要生成的文件名。例如:
```
main.o: main.c
gcc -c $< -o $@
```
这个规则的意思是,当 main.c 文件被修改时,运行 `gcc -c main.c -o main.o` 命令,将 main.c 编译成 main.o 目标文件。"$<" 表示规则中的第一个依赖文件(Prerequisites),即 main.c 文件名。"$@" 表示当前规则的目标文件名,即 main.o。因此,"$@" 表示了当前规则将要生成的文件名,方便在命令中使用。