这个问题通常是由于使用了未定义的 Autoconf 宏引起的。Autoconf 建议你使用 m4_pattern_allow 来解决这个问题。下面是一个示例解决代码:
AC_DEFUN([MY_CHECK], [
AC_MSG_CHECKING([for some feature])
AC_CACHE_VAL(my_cv_feature, [
AC_TRY_COMPILE([/* dummy c code */],
[/* some feature */], my_cv_feature=yes, my_cv_feature=no)
])
AC_MSG_RESULT($my_cv_feature)
AS_IF([test "$my_cv_feature" = yes], [
AC_DEFINE(HAVE_FEATURE, 1, [Have some feature])
])
])
m4_pattern_allow([AC_MY_MACRO])
AC_DEFUN([AC_MY_MACRO], [
/* your macro code here */
])
在上面的示例中,我们使用了 m4_pattern_allow 来告诉 Autoconf,我们正在使用一个自定义的宏,并防止 Autoconf 报告未定义的宏。同时,我们也定义了一个名为 AC_MY_MACRO 的自定义宏,可以在 Autoconf 脚本的其他部分使用。