makefile 中使用if 为什么要加@
时间: 2024-10-19 15:04:08 浏览: 16
c makefile 初级使用
在Makefile中,`@`符号通常用于抑制命令的输出。当你在`.makefile`中使用`if`语句时,如果条件成立,可能会执行一些命令,而这些命令通常是系统调用或者是编译、链接等过程,这些操作往往会打印很多详细信息,包括文件路径和状态消息。加上`@`之后,可以使这些命令的输出不会显示到标准输出上,只在终端中执行,这有助于保持Makefile的日志清晰,特别是当`if`块内的命令较多时。
例如:
```makefile
ifeq ($(OS), Windows)
command_to_run = some_windows_command.bat
else
command_to_run = some_unix_command
endif
ifeq ($(command_to_run), some_windows_command.bat)
@$(command_to_run) # 这里加上了@
endif
```
在这里,只有Windows环境下才会执行`some_windows_command.bat`,并且它的输出会被抑制。如果不加`@`,每次这个命令运行时,都会看到输出信息。
阅读全文