0

这是我的 configure.ac 中的一些代码:

THIS="h5cc"
AC_MSG_WARN([$THIS])
AC_MSG_WARN(m4_bmatch([h5pcc],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))
AC_MSG_ERROR(m4_bmatch([$THIS],
         [h5pcc], [parallel],
         [h5cc], [serial],
         [neither]
         ))

Iautoconf和 then configure,结果如下:

configure: WARNING: h5cc
configure: WARNING: parallel
configure: error: neither

据我所知,这不应该发生,对吧?我错过了什么?

4

1 回答 1

2

您在配置中混合了 M4 代码,但 m4 仅在扩展之前执行(即当您运行时autoconf),THIS=h5cc而是由您的外壳执行的外壳构造(当您运行时./configure)。

因此,m4_bmatch所见是一个字面$THIS,实际上两者都不是。

短版,不要将m4_*函数用于您想在配置时更改的内容。

于 2016-06-15T08:01:40.367 回答