怎么修改ac_sub_configure_args,绝对不是用AC_SUBST,也绝对不是ac_sub_configure_args="--your-arguments-here",也绝对不是./configure --ac_sub_configure_args="--enable-debug",也绝对不是修改configure文件本身,可以参考一下这段configure.ac文件的部分define([EXPAND_VARIABLE], [$2=[$]$1 if test $prefix = 'NONE'; then prefix="/usr/local" fi while true; do case "[$]$2" in [$] ) eval "$2=[$]$2" ;; *) break ;; esac done eval "$2=[$]$2$3" ])dnl EXPAND_VARIABLE
时间: 2024-03-05 21:48:41 浏览: 40
非常抱歉,我之前的回答仍然有误。实际上,如果你不想使用AC_SUBST、直接修改ac_sub_configure_args或命令行选项来修改子配置过程的参数,也不想修改configure文件本身,你可以使用Autoconf提供的另一种宏定义方式:AC_DEFINE。
AC_DEFINE宏定义可以定义一个预处理器宏,并将其值设置为指定的字符串。可以通过在configure.ac文件中使用AC_DEFINE宏定义来修改ac_sub_configure_args的值,而无需使用AC_SUBST宏或直接修改configure文件。
例如,你可以在configure.ac中添加如下代码:
```
AC_DEFINE([MY_CONFIGURE_ARGS], ["--enable-debug"], [My configure arguments])
```
这样,configure脚本会将--enable-debug作为预处理器宏MY_CONFIGURE_ARGS的值,并将其传递给子配置过程。需要注意的是,这个修改只会在当前一次configure运行中生效,如果你需要在后续的configure运行中继续使用这些参数,你需要再次定义这个宏。
在子配置过程中,你可以使用预处理器宏MY_CONFIGURE_ARGS来获取这些参数。例如,在C语言代码中,你可以使用如下代码来获取这些参数:
```
#include <stdio.h>
#ifdef MY_CONFIGURE_ARGS
printf("My configure arguments: %s\n", MY_CONFIGURE_ARGS);
#endif
```
需要注意的是,使用AC_DEFINE宏定义来修改ac_sub_configure_args的值可能会影响到其他地方使用这个值的地方,因此需要谨慎进行修改。
阅读全文