2016-03-29 14 views
1

Bazen GNU Make ile "eşittir" içeren dosyaların işlenmesini otomatikleştirmeye çalışıyorum. Örneğin, dosya adı hello=world.txt denir demek ve Makefile şudur:GNU Make'deki eşittir işaretli dosya adları nasıl kullanılır?

default: hello=world.txt.gz 

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

Aşağıdaki hatayı alıyorum:

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

nasıl eşittir işareti kaçabilir? Ters eğik çizgi, çift tırnak ve tek tırnakları denedim. Herhangi bir fikir?

cevap

2

Bu bir çözümdür: Ben "=%" makefile ile tüm "=" yerine çalıştı ..

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

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

Bu benim için harika çalışıyor. Teşekkürler. – swdev

0

kullanın% = özel karakter göre% öncelenmelidir makefiles

+0

Hum . hata mesajını değiştirmedi. – swdev

+0

tamam, bilgisayarımda çalışır (porteus (slackware linux dağılımı) kullanırım). –

+0

RedHat'ın bir parçası olan 'GNU Make 3.82' kullanıyorum. NEWS dosyasında bu sürümle ilgili bir uyarı var gibi görünüyor, önkoşullardaki eşit işaretlerden kaçamaz. Yani haklı olabilirsin. – swdev

İlgili konular