Autoconfig手册指出注释行可以以dnl#开头。

两者之间是否有区别,在任何情况下都出于某种原因而不是另一种原因使用?还是纯粹是出于品味?

最佳答案

在configure.ac中,在AC_INIT之后出现的带有'#'注释的行将出现在生成的配置脚本中。 dnl评论不会。 dnl的一个目的是丢弃不需要的换行符,以使配置脚本可读。同样,使用dnl注释来记录m4宏也是适当的;这些注释在configure脚本中没有任何意义,因为m4宏没有出现在其中,仅出现在扩展中。

Makefile.am中的注释将被区别对待。 Makefile.am不是由m4处理的,而是由automake处理的,约定是丢弃以##开头且仅以空格开头的行。 (尽管###注释会保留到Makefile.in中)由于Makefile.am未被m4处理,因此'dnl'不会引入注释。

关于autoconf - Autoconf:dnl与#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3371239/

10-11 16:18