Linux: 我无法理解 `m4` 命令

Linux: I can not understand a `m4` command

我的工作是将 Linux 命令转换为 CMake execute_process(COMMAND ...),它们之间存在一些差异,因此我需要了解每个 Linux 命令。但是这个 m4 命令真的打败了我。 m4命令如下:

m4 -Isource/analyzer/ -P < source/analyzer/aParser.m4y > source/analyzer/aParser.by

这个命令是什么意思?

之前看过m4的文档,里面说m4命令的格式是:m4 [option…] [file…],所以我想在命令中:

m4 -Isource/analyzer/ -P < source/analyzer/aParser.m4y > source/analyzer/aParser.by

-Isource/analyzer/ -Pm4[option...],这个 m4 命令使用 < 读取文件 source/analyzer/aParser.m4y 作为 m4 [file...],我没看错吧?

m4 is a macro processor. Read its documentation(对于 GNU m4)。这是一件相当复杂的事情,所以我不会试图用几句话来抽象它。 -P option 是内置函数的前缀 m4_ 所以 define 变成 m4_define 等等...

<(和>)不是m4的选项,它是一般的shell redirection.

当然还需要好好研究下文档cmake (which I personally don't like much, since GNU make 4已经够强大了没有cmake)

您可能应该花数周时间阅读文档,包括 Advanced Bash Scripting guide & Advanced Linux Programming(以及我在此处指出的其他文档)。