Komut satırı değişkenleri ek yapmak geçiyor
Nasıl komut satırı argümanları gnu makefile değişkenleri aktarmak için? Diğer bir deyişle sonunda makefile değişkenler haline gelecek olan bazı argümanlar geçmek istiyorum.
CEVAP
Makefile dışarıdan değişkenleri ayarlamak için birkaç seçeneğiniz vardır:
Çevreden- her ortam değişkeni aynı adı ve değeri ile makefile bir değişken haline dönüştürülmüştür.
Ayrıca, değişken atamaları makefile içine yapılan geçersiz kılar ortamınız (
overridedirective kendisini bu atamaları sürece.-eseçenek (--environments-overrideaka) ayarlamak isteyebilirsiniz Ancak bu pek tavsiye edilmez, ve bu çok daha iyi ve esnek kullanım?=atama (koşullu değişken atama operatör, sadece bir etkisi ise değişken değildir henüz tanımlı):FOO?=default_value_if_not_set_in_environmentBazı çevre değişkenleri: hastalık olup olmadığını unutmayın
MAKEkomut dosyasının adını almışSHELLda bir makefile içinde yer alır, ya da/bin/shvarsayılan (gerekçesi: komutları makefile içinde belirtilen ve kabuk özgü) ediyorlar.
Komut satırından-
makekomut satırı, hedefleri ile karışmış bir parçası olarak değişken atamaları alabilir:make target FOO=barAma sonramakefile içinde
FOOdeğişken tüm atamaları göz ardı edilecektiratamaoverridedirective kullanmadığınız sürece. (Etkisi ortam değişkenleri için-eseçeneği ile) aynıdır.Ana ihracat Yapmakeğer bir Makefile Yapmak ararsanız, genellikle açıkça böyle değişken atamaları yazmak gerekmiyor mu:
# Don't do this! target: $(MAKE) -C target CC=$(CC) CFLAGS=$(CFLAGS)Bunun yerine, daha iyi çözüm bu değişkenler vermek olabilir. Bir değişken verme her shell çağırma ortamına yapar, ve bu komutlar gelen aramalar yukarıda belirtilen bu ortam değişkeni tahmin Yapmak.
# Do like this CFLAGS=-g export CFLAGS target: $(MAKE) -C targetAyrıca verebilirsiniztümargümanlar olmadan
exportkullanarak deÄŸiÅŸkenler.

Toplu iş dosyaları komut satırı sayısı...
Nasıl böyle büyük mükafat 4'te komut s...
Nasıl PowerShell komut satırı değişken...
PowerShell Komut dosyası yürütme C# il...
Nasıl bir Perl programı için komut sat...