我在这里问了一个关于 cmake 和传递变量的问题。我可以让它工作,但前提是我在函数中命名我的变量与我调用该函数的父范围中的变量不同。所以本质上:
function(strange name)
message(STATUS ${name})
message(STATUS ${${name}})
endfunction()
set(name foo)
set(anothername foo)
strange(name)
strange(anothername)
结果是:
-- name (message(STATUS ${name}) for var "name")
-- name (message(STATUS ${${name}}) for var "name")
-- anothername message(STATUS ${name}) for var "anothername")
-- foo (message(STATUS ${${name}}) for var "anothername")
这不是有点奇怪吗?发生了什么?我认为函数的行为不应该取决于父范围内变量的命名 - 应该吗?!
任何澄清都非常感谢!