:= 是覆蓋之前的值
?= 是如果沒有被賦值過就賦予等號後面的值
兩者差別還是很大的,比如在使用cuda版本時,如果使用CUDA_PATH ?= cuda-7.5,如果前面已經對CUDA_PATH賦值過爲6.5版本,則目前CUDA_PATH 依舊爲6.5版本,這樣可能會導致後面一些編譯指令由於版本太低報錯。
:= 是覆蓋之前的值
?= 是如果沒有被賦值過就賦予等號後面的值
兩者差別還是很大的,比如在使用cuda版本時,如果使用CUDA_PATH ?= cuda-7.5,如果前面已經對CUDA_PATH賦值過爲6.5版本,則目前CUDA_PATH 依舊爲6.5版本,這樣可能會導致後面一些編譯指令由於版本太低報錯。