我的工作是将Linux命令转换为CMake execute_process(COMMAND ...),并且它们之间存在一些差异,因此我需要了解每个Linux命令。但是这个m4命令确实击败了我。m4命令如下:
m4 -Isource/analyzer/ -P < source/analyzer/aParser.m4y > source/analyzer/aParser.by
Run Code Online (Sandbox Code Playgroud)
该命令是什么意思?
我之前阅读过m4文档,它说m4命令的格式为: m4 [option…] [file…],所以我认为在命令中:
m4 -Isource/analyzer/ -P < source/analyzer/aParser.m4y > source/analyzer/aParser.by
Run Code Online (Sandbox Code Playgroud)
该-Isource/analyzer/ -P是[option...]的m4,这m4commad使用<阅读文件source/analyzer/aParser.m4y为M4 [file...],我有没有正确的理解呢?
m4是宏处理器。阅读其文档(适用于GNU m4)。这是一件非常复杂的事情,所以我不会尝试用几句话来抽象它。该-P选项为buildins加上前缀,m4_因此define变为m4_defineetc ...
在<(和>)不是一个选项,M4,它是一个普遍的外壳重定向。
当然,您还需要研究cmake的文档(我个人不太喜欢,因为GNU make 4在没有的情况下 足够强大cmake)
您可能应该花数周时间阅读文档,包括Advanced Bash脚本指南和Advanced Linux Programming(以及我在此处指出的其他文档)。