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