0
我想修改一個傳遞給函數的變量。這裏是我寫的代碼:如何修改現有的變量?
FUNCTION(TEST var)
set(${var} "ABC")
message(${var}) # 2) 123
set(${var} "ABC" PARENT_SCOPE)
ENDFUNCTION(TEST)
set(v "123")
message(${v}) # 1) 123
TEST(${v})
message(${v}) # 3) 123
爲什麼所有三個輸出都打印出123
。我預計#2
和#3
打印ABC
?
如果我通過這樣的變量 - TEST(v)
- 我有其他輸出:#1 - 123
,#2 - v
,#3 - ABC
。爲什麼是這樣?有什麼不同?
謝謝。這適用於「正常」變量,但不適用於列表變量。這是什麼'$ {$ {var}}'?爲什麼我們需要雙花括號? – nikitablack
@nikitablack這也適用於列表變量,因爲CMake中的列表只有分號分隔的字符串。並且雙引號需要用於雙引號(首先是變量的名稱,然後是該變量的內容) – Florian