0

GNUmakefileの内容は次のとおりです。

SVNVERSION_NUMBER := $(shell svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/')

$(error $(SVNVERSION_NUMBER))

次の結果が得られます:

Makefile:3: *** svnversion, version 1.6.2 (r37639).  Stop.

ただし、シェルで次のように入力すると、次のようになります。

svnversion --version | perl -lne 'print $1 if /version (\d+.\d+.\d+)/'

結果が得られます:

1.6.2

明らかに、私のシェル構文は私が思っていることを実行していませんが、その理由はわかりません。

ありがとう。

4

1 に答える 1

7

$はmake文字列では特別です。perlコマンドのリテラルドル記号の場合は$$。

于 2009-12-08T04:07:56.753 に答える