我的工作是将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/ -P
是m4
[option...]
,这个m4
commad使用<
将文件source/analyzer/aParser.m4y
读取为M4 [file...]
,我理解正确吗?
m4 是一个宏处理器。阅读其文档(适用于 GNU m4)。这是一件相当复杂的事情,所以我不会试图用几句话来抽象它。-P
选项是在内置的前面加上m4_
,这样define
就变得m4_define
等等......
<
(和>
)不是m4的选项,而是一般的shell重定向。
当然,你还需要研究cmake的文档(我个人不太喜欢,因为GNU make 4足够强大,没有cmake
)
你可能应该花几周时间阅读文档,包括Advanced Bash Scripting指南和Advanced Linux Programming(以及我在这里指出的其他文档)。