它们控制标记命令行的 make 行为:
@ 抑制所执行命令的正常“回声”。
- 表示忽略正在执行的命令的退出状态(通常,非零退出状态会停止该部分的构建)。
+ 表示“在 make -n 下执行此命令”(或“make -t”或“make -q”),当命令未正常执行时。另请参见 make 的 POSIX 规范以及 GNU Make 手册的第 9.3 节。
+
表示法是 de facto(非标准化)机制的(POSIX 标准化)概括,其中包含 ${MAKE}
或 $(MAKE)
的命令行在 make -n
下执行。
(GNU Make 手册的 §5.2 中讨论了 @
;§5.5 中描述了 -
;§5.7.1 提到了 +
的使用。)
@
防止命令行回显到控制台。您可以使用 -s
或 --keep-silent
在全局范围内执行此操作
-
告诉 make 继续运行,即使命令由于某种原因失败。您可以通过 -i
标志(或 --ignore-errors
)全局执行此操作。
+
在你问之前我并不熟悉。据我所知,它否定了 -n
、-t
和 -q
的效果,所有这些基本上都告诉 make 不要实际运行命令。因此,前面带有 +
的行无论如何都会运行。
如果您阅读官方 Gnu Make 手册,Chapter 5 中都会提到它们。在我的旧手册副本中,这是关于“命令”的章节,但现在术语 du jour 似乎是“食谱”。