2014-07-16 17 views
20
KDIR ?= $(shell uname -r) 

Ý nghĩa của ?= là gì?Cái gì? = Trong Makefile

Tôi đã hiểu sự khác biệt giữa :=, +== từ một chuỗi khác có sẵn trong Stack Overflow, nhưng không thể tìm thấy giải thích cho ?=.

Trả lời

28

?= chỉ để đặt biến số KDIR chỉ khi không được đặt/không có giá trị.

Ví dụ:

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

test: 
    echo $(KDIR) 

Sẽ in "foo"

+0

Liệu nó có nghĩa rằng KDIR đã được tuyên bố ở đâu đó trong hệ thống? – codedoc

+1

Không nhất thiết, vì '? =' Có thể được sử dụng để áp dụng giá trị mặc định/dự phòng cho một biến, nó có thể cho phép đặt 'KDIR' trong môi trường. – Simon

Các vấn đề liên quan