makefile $@
时间: 2023-10-01 10:07:44 浏览: 49
在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。因此,"$@" 表示了当前规则将要生成的文件名,方便在命令中使用。
makefile $@什么意思啊
在 makefile 中,$@ 是一个自动化变量,表示当前规则中的目标文件名。它用于表示当前正在构建的目标文件名,可以用于指定命令中的目标文件名参数。
例如,下面的规则:
```
main: main.o utils.o
gcc -o $@ $^
```
表示要构建 main 可执行文件,依赖于 main.o 和 utils.o 两个目标文件。$@ 在这里代表的就是 main 目标文件。第二行的命令中,-o 选项指定输出文件名为 $@,即 main。$^ 则表示所有依赖文件的列表,这里就是 main.o 和 utils.o。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)