m4--宏处理器

Posted yuxi_o

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了m4--宏处理器相关的知识,希望对你有一定的参考价值。

m4 是 POSIX 标准中的一部分,所有版本的 UNIX 下都可用。虽然这种语言可以单独使用,但大多数人需要 m4 仅仅是因为 GNU autoconf 中的 “configure” 脚本依赖它。宏处理器(或预处理器)一般用作文本替换工具。最终用户经常会用它来处理要反复使用的文本模板,典型的是用于编程工具,还会用于文本编辑和文字处理工具。

宏处理器开始流行的时候,程序员还都在使用汇编语言来编程。在早期,程序 员发现他们的程序中包含了很多重复的代码,于是他们创造了这种简单的方法来重用。程序员们很快发现它不仅能用于重用整块代码,还能为类似的参数替换不同的 值。这明确了宏处理器的使用范围。在 1977 年,Kernighan 和 Ritchie 基于 Christopher Strachey 的想法开发了 m4。一些与众不同的特征有:
1. 自由形式的语法(而不是像那些用于处理汇编语言的典型宏处理器一样使用基于行的语法)
2. 高度的宏扩展(宏参数被扩展两次:扫描时一次、插值时一次)
从一开始,Rational Fortran(RatFor) 就使用 m4 作为它的宏引擎,而大多数 UNIX 变种发布时都包含了它。截止 2009 年,许多应用仍在使用 m4(作为 GNU autoconf 项目的一部分)。它还出现在 sendmail(一个广泛使用的邮件传输代理)的配置过程,以及用于 gEDA 工具包中生成脚印。m4 大多用于代码生成,和其他宏处理器一样,一旦出了问题会很难调试。

以上是关于m4--宏处理器的主要内容,如果未能解决你的问题,请参考以下文章

Linux From Scratch(LFS11.0)交叉编译临时工具 - M4-1.4.19

宏编程是啥?

Linux From Scratch(LFS11.0)构建 LFS 系统 - M4-1.4.19

LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - M4-1.4.17

m4鼠标宏参数

自定义 .m4 宏不适用于 configure.ac