configureスクリプトで環境変数が設定されているか確認しますか?

jww

ANDROID_NDK_ROOTAutoconfスクリプトでが設定されているかどうかをテストしようとしています。関連するスタンザを以下に示します。どうすれ環境変数を確認できますか?Autoconfメーリングリストでは、次のものを使用できます。

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

変数は設定AC_MSG_ERRORされていませんが、myは実行されていません。

$ 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

これがconfigurefromのチャンクですcat -n

 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
ジョン・ボリンジャー

変数が設定されているかどうかをテストするためのシェル構文に問題はなく、Autoconfで正常に機能します。

この問題は、AC_CHECK_FILE()マクロへの3番目の引数の引用に失敗したことから発生しているようです。特にその引数がマクロ呼び出し自体であるか、マクロ呼び出し自体を含む場合は、常に各マクロの各引数を(角括弧で)引用する必要がありますconfigure提供したサンプルコードをAC_INITとの間にラップすることで構文エラーを再現できますが、AC_OUTPUT適切な引用符を使用する解消されます。具体的には、ここで:

   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])]
   )

引数の引用に失敗すると、引数が何度も展開され、結果の出力は実際には構文的に有効なシェルコードではありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Antスクリプトで環境変数が設定されているかどうかを確認します

分類Dev

Windowsバッチスクリプトで環境変数が定義されているかどうかをどのように確認しますか

分類Dev

環境変数がUnixシェルスクリプトで設定されていることを確認する簡潔な方法は何ですか?

分類Dev

環境変数がすでに設定されているかどうかを確認します

分類Dev

環境変数が存在し、Trueに設定されているかどうかを確認します

分類Dev

アプリがテスト環境で実行されているかどうかを確認します

分類Dev

-Dmaven.multiModuleProjectDirectoryシステムプロパティが設定されていません。$ M2_HOME環境変数とmvnスクリプトが一致することを確認してください

分類Dev

変数が複数のスクリプトで設定されているかどうかを確認してください

分類Dev

環境変数のリストがすべていくつかの値に設定されているかどうかをテストします

分類Dev

bashスクリプトに渡された最初の引数が設定されているかどうかを確認していますか?

分類Dev

Reactアプリで本番環境変数を設定するにはどうすればよいですか?(Netlifyでホストされています)

分類Dev

Node.jsで環境変数が設定されているかどうかを確認するにはどうすればよいですか?

分類Dev

C#で環境変数が定義されているかどうかを確認する

分類Dev

環境変数が設定されているが実際に存在することを確認するにはどうすればよいですか?

分類Dev

「vncserver:HOME環境変数が設定されていません」というエラーを修正する方法-ユーザーに代わってPHPからPythonスクリプトを実行しますか?

分類Dev

スクリプトでユーザーのアカウントにパスワードが設定されているかどうかを確認します

分類Dev

変数が設定されているかどうかを確認します

分類Dev

環境変数を設定してから、Jenkins ScriptedPipelineでスクリプトを実行します

分類Dev

スクリプト化されたjenkinsパイプラインで環境変数を動的に設定するにはどうすればよいですか?

分類Dev

スクリプト化されたjenkinsパイプラインで環境変数を動的に設定するにはどうすればよいですか?

分類Dev

Dpkg環境変数DPKG_HOOK_ACTIONがフックスクリプトに設定されていません

分類Dev

リモートVMのOSバージョンを抽出し、それをリモートVMの環境変数として設定し、expectスクリプトでさらに使用するにはどうすればよいですか?

分類Dev

bashスクリプト内で-eが設定されているかどうかを確認することはできますか?

分類Dev

cmake:スクリプトから環境変数を設定します

分類Dev

JenkinsのGroovyスクリプトから環境変数を設定します

分類Dev

JenkinsのGroovyスクリプトから環境変数を設定します

分類Dev

関数でパイプラインを介してエコーをリダイレクトするときに環境変数が設定されない

分類Dev

Herokuに設定されている環境変数をVueアプリが正しく読み取るための最良の方法は何ですか?

分類Dev

bashスクリプトを介してシステム環境変数を設定しますか?

Related 関連記事

  1. 1

    Antスクリプトで環境変数が設定されているかどうかを確認します

  2. 2

    Windowsバッチスクリプトで環境変数が定義されているかどうかをどのように確認しますか

  3. 3

    環境変数がUnixシェルスクリプトで設定されていることを確認する簡潔な方法は何ですか?

  4. 4

    環境変数がすでに設定されているかどうかを確認します

  5. 5

    環境変数が存在し、Trueに設定されているかどうかを確認します

  6. 6

    アプリがテスト環境で実行されているかどうかを確認します

  7. 7

    -Dmaven.multiModuleProjectDirectoryシステムプロパティが設定されていません。$ M2_HOME環境変数とmvnスクリプトが一致することを確認してください

  8. 8

    変数が複数のスクリプトで設定されているかどうかを確認してください

  9. 9

    環境変数のリストがすべていくつかの値に設定されているかどうかをテストします

  10. 10

    bashスクリプトに渡された最初の引数が設定されているかどうかを確認していますか?

  11. 11

    Reactアプリで本番環境変数を設定するにはどうすればよいですか?(Netlifyでホストされています)

  12. 12

    Node.jsで環境変数が設定されているかどうかを確認するにはどうすればよいですか?

  13. 13

    C#で環境変数が定義されているかどうかを確認する

  14. 14

    環境変数が設定されているが実際に存在することを確認するにはどうすればよいですか?

  15. 15

    「vncserver:HOME環境変数が設定されていません」というエラーを修正する方法-ユーザーに代わってPHPからPythonスクリプトを実行しますか?

  16. 16

    スクリプトでユーザーのアカウントにパスワードが設定されているかどうかを確認します

  17. 17

    変数が設定されているかどうかを確認します

  18. 18

    環境変数を設定してから、Jenkins ScriptedPipelineでスクリプトを実行します

  19. 19

    スクリプト化されたjenkinsパイプラインで環境変数を動的に設定するにはどうすればよいですか?

  20. 20

    スクリプト化されたjenkinsパイプラインで環境変数を動的に設定するにはどうすればよいですか?

  21. 21

    Dpkg環境変数DPKG_HOOK_ACTIONがフックスクリプトに設定されていません

  22. 22

    リモートVMのOSバージョンを抽出し、それをリモートVMの環境変数として設定し、expectスクリプトでさらに使用するにはどうすればよいですか?

  23. 23

    bashスクリプト内で-eが設定されているかどうかを確認することはできますか?

  24. 24

    cmake:スクリプトから環境変数を設定します

  25. 25

    JenkinsのGroovyスクリプトから環境変数を設定します

  26. 26

    JenkinsのGroovyスクリプトから環境変数を設定します

  27. 27

    関数でパイプラインを介してエコーをリダイレクトするときに環境変数が設定されない

  28. 28

    Herokuに設定されている環境変数をVueアプリが正しく読み取るための最良の方法は何ですか?

  29. 29

    bashスクリプトを介してシステム環境変数を設定しますか?

ホットタグ

アーカイブ