C++ Autoconf未正确定义变量
我正在为我的项目使用GNU自动工具。configure.ac脚本包含以下代码段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
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中定义。