【发布时间】:2026-02-07 06:45:01
【问题描述】:
在 cmake 中,类似以下内容有什么区别:
set(any_new_var ${old_var})
和
set(any_new_var "${old_var}")
有什么重要的区别吗?我什么时候必须使用其中一种形式?
例如,我尝试下一个小测试
# test.cmake
# Variable 'a' isn't defined.
set(hola "${a}")
# message(${hola})
message("${hola}")
这个小测试 (cmake -P test.cmake) 的输出是一个空行(因为 'a' 没有定义)。如果我取消注释第一条消息,cmake 会抛出消息错误:
CMake Error at prueba.cmake:6 (message):
message called with incorrect number of arguments
为什么在第二种情况下它不抛出错误而是空行?
【问题讨论】:
-
一个有用的语法描述供将来参考:cmake.org/Wiki/CMake/Language_Syntax
-
该页面非常有用。像我这样的新手的主要参考:)
标签: cmake