这个问题通常出现在使用了多个 AC_ARG_VAR
或 AC_ARG_ENABLE
的情况下,这可能导致 @<:@具体选项@:>@
已经在前面的某个地方被定义过了。例如:
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [Enable debug mode])])
AC_ARG_VAR([CC], [C compiler])
AC_ARG_VAR([CC], [C compiler path])
这里的第二个 AC_ARG_VAR
宏将 CC
定义为可变参数,但是第三个 AC_ARG_VAR
宏重复定义了 CC
,这会导致该错误。
为了解决这个问题,您可以改为使用 AC_ARG_WITH
宏来避免重复定义选项:
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [Enable debug mode])])
AC_ARG_WITH([cc], [AS_HELP_STRING([--with-cc=PATH], [Path to C Compiler])])
或者是将它们合并在一起:
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [Enable debug mode])])
AC_ARG_VAR([CC], [C compiler])
AC_ARG_WITH([cc], [AS_HELP_STRING([--with-cc=PATH], [Path to C Compiler])])
这样,您就可以正确地使用 AC_ARG_VAR
宏来定义变量了。