KDIR ?= $(shell uname -r)
Ý nghĩa của là ?=
gì?
Tôi đã hiểu sự khác biệt giữa :=
, +=
và =
từ một chủ đề có sẵn trong Stack Overflow, nhưng không thể tìm ra lời giải thích cho ?=
.
Câu trả lời:
?=
cho biết chỉ đặt KDIR
biến nếu nó không được đặt / không có giá trị.
Ví dụ:
KDIR ?= "foo"
KDIR ?= "bar"
test:
echo $(KDIR)
Sẽ in "foo"
Hướng dẫn sử dụng GNU: http://www.gnu.org/software/make/manual/html_node/Setting.html
?=
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 KDIR
được đặt trong môi trường.
?=
.
Cảm ơn Simon và RT đã phản hồi nhanh chóng và chính xác.
Ngoài ra, tôi đã tìm thấy sổ tay GNU giải thích mọi thứ chi tiết: http://www.gnu.org/software/make/manual/html_node/Setting.html