软件开发中的M4使用、接口设计与递归目标实现技巧
1. M4使用与问题诊断
在软件开发中,M4的使用虽然看似简单,但深入使用会发现其复杂性。在使用M4处理configure.ac文件时,可能会遇到各种问题。
常见问题:人们在编写M4宏时,常因细节问题而遇到阻碍,而非对宏的工作原理缺乏理解。常见问题如下:
- 宏名称与左括号之间有空格
- 括号不匹配
- 参数数量错误
- 宏名称拼写错误
- 宏参数引用错误
- 宏参数列表中缺少逗号
M4对这些错误的容忍度较低,且错误信息可能比make的更晦涩。若遇到奇怪的错误,应仔细检查宏定义,查找上述问题。
调试工具:m4_traceon和m4_traceoff宏是非常有用的调试工具。其宏签名如下:
m4_traceon([name, ...]) m4_traceoff([name, ...])所有参数都是可选的。若提供参数,参数应为逗号分隔的宏名称列表,M4会在输入流中遇到这些宏时将其名称打印到输出流。若省略参数,M4会打印其展开的每个宏的名称。
典型跟踪会话示例:
$ m4 de