3

私はm4を初めて使用し、ユーザーが構成時にライブラリの場所を指定できるようにするマクロを設定しようとしています./configure --with-mylib=/path/to/lib.so

を使用したm4マクロAC_ARG_WITHでは、指定されたファイルが実際に存在することを確認してから、そのlibへのパスを保存します。MYLIB_PATH=esyscmd([dirname $withval])。これにより、エラーが発生します。

dirname:オペランドがありません

シェルはについて知らないようです$withval。このコマンドを実行するにはどうすればよいですか?

ありがとう、

アンドリュー

4

1 に答える 1

3

これは、スクリプトの生成時、つまり「コンパイル時」にesyscmdによって実行されるためです。使用するm4configure

MYLIB_PATH=`dirname $with_mylib`

代わりは。

$withval"は実際には という名前のシェル変数の値であり、with_packageパッケージ内の英数字以外の文字は_" に変更されているため、すべての出現/が削除され、有効なパスではない可能性があります。

于 2011-01-07T16:51:17.437 に答える