C++ Autoconf未正确定义变量

C++ Autoconf未正确定义变量,c++,autotools,autoconf,C++,Autotools,Autoconf,我正在为我的项目使用GNU自动工具。configure.ac脚本包含以下代码段 AC_ARG_WITH(chkhere, AC_HELP_STRING([--without-chkhere], [do not compile]), [ac_cv_chkhere=$withval], [ac_cv_chkhere=yes]) # Check if chkhere is available if test "x$ac_cv_chkhere" = "xyes" then AC_DEFINE(H

我正在为我的项目使用GNU自动工具。configure.ac脚本包含以下代码段

AC_ARG_WITH(chkhere,
 AC_HELP_STRING([--without-chkhere], [do not compile]),
 [ac_cv_chkhere=$withval], [ac_cv_chkhere=yes])

# Check if chkhere is available
if test "x$ac_cv_chkhere" = "xyes"
then
 AC_DEFINE(HAVE_CHECKED)
 echo "chkhere: enabled"
else
  echo "chkhere: DISABLED"
fi

我正在检查C++代码中的变量HaveIg。这适用于--没有chkhere选项

当我用CHKTION提供/配置时,它显示了“CKKETI:Enabl”的消息,但HaveXTror在C++代码中出现了未定义的。

请告诉我哪里出了问题,或者我是否可以用不同的方法来测试?谢谢


附言:我遵循以下命令序列:automake;libtoolize;A局部-I m4;自动匹配

您是否确保包含
#?这就是将要定义的
HAVE_CHECKED

编辑

如果您未使用完整形式的
AC_DEFINE
,我的autoheader版本会出现问题并失败:

AC_DEFINE([HAVE_CHECKED], [1], [some description])

因此,即使您调用了autoheader,您的
config.h.in
也不会得到更新。

如果您没有调用
autoheader
,则
config.h.in
可能已过期,并且可能未提及
是否已选中
。我建议你放弃你的命令序列,改用
autoreconf
,它会运行你所需要的。

p.S.到你的p.S.你可以用
autoeconf
代替那一序列的命令。是的,我有。我验证了它也没有在config.h中定义。