= Makefile'da nedir?


94
KDIR ?= $(shell uname -r)

Ne anlama geliyor ?=?

Ben arasındaki farkı anlamış :=, +=ve =yığın taşması kullanılabilmektedir, ancak yapamaz başka bir iş parçacığı için açıklama bulmaya ?=.

Yanıtlar:


132

?=KDIRdeğişkeni yalnızca ayarlanmamışsa / bir değere sahip değilse ayarlamayı belirtir .

Örneğin:

KDIR ?= "foo"
KDIR ?= "bar"

test:
    echo $(KDIR)

"Foo" yazdırır

GNU kılavuzu: http://www.gnu.org/software/make/manual/html_node/Setting.html


1
Bu, KDIR'nin sistemde bir yerde zaten beyan edildiği anlamına mı geliyor?
2014

1
Çünkü, olmak zorunda değildir ?=bir değişkene varsayılan bir / yedek değeri uygulamak için kullanılabilir o izin olabilir, KDIRçevrede ayarlanmalıdır.
Simon

1
@Simon Yapmak için komut satırı argümanlarının zaten Makefile değişkenlerini gereksiz yere geçersiz kıldığını unutmayın ?=.
CMCDragonkai

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.