Komut satırı değişkenleri ek yapmak geçiyor | Netgez.com
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

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • Sams Page :D

    Sams Page :D

    15 Mart 2009