They control the behaviour of make for the tagged command lines:
@ suppresses the normal 'echo' of the command that is executed.
- means ignore the exit status of the command that is executed (normally, a non-zero exit status would stop that part of the build).
+ means 'execute this command under make -n' (or 'make -t' or 'make -q') when commands are not normally executed. See also the POSIX specification for make and also §9.3 of the GNU Make manual.
The + notation is a (POSIX-standardized) generalization of the de facto (non-standardized) mechanism whereby a command line containing ${MAKE} or $(MAKE) is executed under make -n.
(@ is discussed in §5.2 of the GNU Make manual; - is described in §5.5; and §5.7.1 mentions the use of +.)
@ prevents the command line from echoing out to the console. You can do it globally with -s or --keep-silent
- tells make to keep going, even if the command fails for some reason. You can do it globally via the -i flag (or --ignore-errors).
+ I was not familar with before you asked. As near as I can tell, it negates the effect of -n, -t, and -q, all of which basically tell make to not actually run the commands. So a line with a + at the front would get run anyway.
If you read the official Gnu Make manual, they are all mentioned in Chapter 5. In my old copy of the manual that was the chapter on "commands", but term du jour now seems to be "recipes".
发布评论
评论(2)
它们控制标记命令行的 make 行为:
@
抑制所执行命令的正常“回显”。-
表示忽略所执行命令的退出状态(通常,非零退出状态将停止构建的该部分)。+
表示“当命令未正常执行时,在make -n
”(或“make -t”或“make -q”)下执行此命令。另请参阅make
的 POSIX 规范还有§9.3 GNU Make 手册。+
表示法是事实上(非标准化)机制的(POSIX 标准化)概括,其中命令行包含${MAKE}
或$(MAKE)
在make -n
下执行。(
@
在 §5.2< 中讨论GNU Make 手册的 /a> ;§5.5; 和 §5.7.1 提到了+
的使用。)They control the behaviour of make for the tagged command lines:
@
suppresses the normal 'echo' of the command that is executed.-
means ignore the exit status of the command that is executed (normally, a non-zero exit status would stop that part of the build).+
means 'execute this command undermake -n
' (or 'make -t' or 'make -q') when commands are not normally executed. See also the POSIX specification formake
and also §9.3 of the GNU Make manual.The
+
notation is a (POSIX-standardized) generalization of the de facto (non-standardized) mechanism whereby a command line containing${MAKE}
or$(MAKE)
is executed undermake -n
.(
@
is discussed in §5.2 of the GNU Make manual;-
is described in §5.5; and §5.7.1 mentions the use of+
.)@
防止命令行回显到控制台。您可以使用-s
或--keep-silent
全局执行此操作-
告诉 make 继续执行,即使命令由于某种原因失败。您可以通过-i
标志(或--ignore-errors
)全局执行此操作。+
在你问之前我并不熟悉。据我所知,它否定了-n
、-t
和-q
的效果,所有这些基本上都告诉 make并没有实际运行命令。所以前面带有+
的行无论如何都会运行。如果你读过官方的 Gnu Make 手册,它们都在 第 5 章中提到< /a>.在我的旧手册中,这是关于“命令”的章节,但术语“du jour”现在似乎是“食谱”。
@
prevents the command line from echoing out to the console. You can do it globally with-s
or--keep-silent
-
tells make to keep going, even if the command fails for some reason. You can do it globally via the-i
flag (or--ignore-errors
).+
I was not familar with before you asked. As near as I can tell, it negates the effect of-n
,-t
, and-q
, all of which basically tell make to not actually run the commands. So a line with a+
at the front would get run anyway.If you read the official Gnu Make manual, they are all mentioned in Chapter 5. In my old copy of the manual that was the chapter on "commands", but term du jour now seems to be "recipes".