Makefile에서? =는 무엇입니까?


95
KDIR ?= $(shell uname -r)

의 의미는 ?=무엇입니까?

:=, +==Stack Overflow에서 사용할 수있는 다른 스레드 의 차이점을 이해 했지만에 대한 설명을 찾을 수 없습니다 ?=.

답변:


134

?=KDIR변수 가 설정 되지 않았거나 값이없는 경우에만 변수 를 설정하도록 나타냅니다 .

예를 들면 :

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

test:
    echo $(KDIR)

"foo"를 인쇄합니다.

GNU 매뉴얼 : http://www.gnu.org/software/make/manual/html_node/Setting.html


1
KDIR이 이미 시스템 어딘가에 선언되어 있음을 의미합니까?
codedoc

1
?=변수에 기본값 / 대체 값을 적용하는 데 사용할 수 있으므로 반드시 그럴 필요는 없습니다 KDIR. 환경에서 설정 하도록 허용 할 수 있습니다.
Simon

1
@Simon make 명령 줄 인수는 ?=.
CMCDragonkai

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.