SORU
13 Mayıs 2010, PERŞEMBE


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
13 Mayıs 2010, PERŞEMBE


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 (override directive kendisini bu atamaları sürece. -e seçenek (--environments-override aka) 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_environment
    

    Bazı çevre değişkenleri: hastalık olup olmadığını unutmayın

    • MAKE komut dosyasının adını almış
    • SHELL da bir makefile içinde yer alır, ya da /bin/sh varsayılan (gerekçesi: komutları makefile içinde belirtilen ve kabuk özgü) ediyorlar.
  • Komut satırından- make komut satırı, hedefleri ile karışmış bir parçası olarak değişken atamaları alabilir:

    make target FOO=bar
    

    Ama sonramakefile içinde FOO değişken tüm atamaları göz ardı edilecektiratama override directive kullanmadığınız sürece. (Etkisi ortam değişkenleri için -e seç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 target
    

    Ayrıca verebilirsiniztümargümanlar olmadan export kullanarak değişkenler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009