gpt4 book ai didi

environment-variables - 检查配置脚本中是否设置了环境变量?

转载 作者:行者123 更新时间:2023-12-02 03:26:14 25 4
gpt4 key购买 nike

我正在尝试测试 Autoconf 脚本中是否设置了 ANDROID_NDK_ROOT。相关节如下所示。根据How can I check an environment variable?在 Autoconf 邮件列表中,我可以使用:

if test "${var+set}" = set; then
echo "variable \$var is set to: $var"
fi

变量未设置,但我的 AC_MSG_ERROR 未执行。

$ printenv | grep ANDROID_NDK_ROOT
$

相反,测试会产生以下错误:

./configure: line 20616: syntax error near unexpected token `('
./configure: line 20616: ` $as_echo_n "(cached) " >&6'

(帖子中还有另一个回复,但似乎只是评论,并没有回答问题)。

如何测试 Autoconf 中是否设置了环境变量?


这是我尝试在 configure.ac 中执行的节:

# if test "$IS_ANDROID_OS" != "0"; then
if true; then

if test "${ANDROID_NDK_ROOT+set}" != set; then
AC_MSG_ERROR([ANDROID_NDK_ROOT is not set. Please set ANDROID_NDK_ROOT])
fi

THIS_FILE="$ANDROID_NDK_ROOT/sources/android/cpufeatures/cpu-features.h"
AC_CHECK_FILE([$THIS_FILE],
[cp "$THIS_FILE" "$ac_srcdir"],
AC_MSG_RESULT([cpu-features.h does not exist in ANDROID_NDK_ROOT, skipping])
)

THIS_FILE="$ANDROID_NDK_ROOT/sources/android/cpufeatures/cpu-features.c"
AC_CHECK_FILE([$THIS_FILE],
[cp "$THIS_FILE" "$ac_srcdir"],
AC_MSG_RESULT([cpu-features.c does not exist in ANDROID_NDK_ROOT, skipping])
)
fi

这是来自 cat -nconfigure block :

 20610
20611 THIS_FILE="$ANDROID_NDK_ROOT/sources/android/cpufeatures/cpu-features.c"
20612 as_ac_File=`$as_echo "ac_cv_file_$THIS_FILE" | $as_tr_sh`
20613 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $THIS_FILE" >&5
20614 $as_echo_n "checking for $THIS_FILE... " >&6; }
20615 if eval \${$as_ac_File+:} false; then :
20616 $as_echo_n "(cached) " >&6
20617 else
20618 test "$cross_compiling" = yes &&
20619 as_fn_error $? "cannot check for file existence when cross compiling""$LINENO" 5
20620 if test -r "$THIS_FILE"; then
20621 eval "$as_ac_File=yes"
20622 else
20623 eval "$as_ac_File=no"
20624 fi

最佳答案

我遇到了这个老问题,并认为我应该分享一个当我需要检查多个变量是否设置时最终使用的解决方案(在这个经过净化的示例中,VAR1VAR4):

m4_foreach_w([my_var],[VAR1 VAR2 VAR3 VAR4],[
AS_VAR_IF(myvar, [], AC_MSG_ERROR([Missing required variable: myvar!]))
AC_SUBST(myvar)dnl Export variable to Makefile as well
AC_ARG_VAR(myvar, [])dnl if this variable changes, re-run configuration
])

关于environment-variables - 检查配置脚本中是否设置了环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com