2016-03-29 12 views
1

私は時々GNU Makeと "等号"を含むファイルの処理を自動化しようとしています。GNU Makeで等号でファイル名を扱うには?

default: hello=world.txt.gz 

hello=world.txt.gz : hello=world.txt 
     gzip hello=world.txt 
     echo done 

あなたは次のエラーを取得する:

test.make:5: *** commands commence before first target. Stop. 

はどのように等号を逃れることができますか?たとえば、ファイル名がhello=world.txtと呼ばれ、Makefileは以下ですと言いますかバックスラッシュ、二重引用符、一重引用符を試しました。何か案は?

答えて

2

これは、1つのソリューションです:私は "=%" メイクファイルにして、すべての "=" 置き換えてみました..

equal := = 
default: hello$(equal)world.txt.gz 

hello$(equal)world.txt.gz : hello$(equal)world.txt 
    gzip hello$(equal)world.txt 
    echo done 
+0

これは私にとって素晴らしい作品です。ありがとう。 – swdev

0

使用%=特殊文字は%でエスケープしなければならないのmakefileに

+0

ハム。エラーメッセージは変更されませんでした。 – swdev

+0

大丈夫、私のコンピュータで動作します(私はporteus(slackware Linuxディストリビューション)を使用しています)。 –

+0

私はRedHatの一部である 'GNU Make 3.82'を使用しています。そのバージョンが前提条件の等号をエスケープできないという警告がNEWSファイルにあります。そう、あなたは正しいかもしれません。 – swdev

関連する問題