我使用以下CMake脚本来说明我的问题:
cmake_minimum_required(VERSION 2.8)
project (HelloWord)
# set variable
set(mylist "Hello "
"the "
"world!")
message("${mylist}")
message(${mylist})
然后我们会在屏幕上找到以下输出:
Hello ;the ;world!
Hello the world!
我的问题是为什么“$ {mylist}”和$ {mylist}之间存在差异。谢谢。
编辑: 当我使用以下代码获取“$ {mylist}”的长度时,它总是返回0,但我认为它应该是3。
list(LENGTH“$ {mylist}”mylen) 消息($ {mylen})
答案 0 :(得分:4)
${mylist}
是三个项目的列表,如果用双引号将其呈现为字符串。列表的字符串表示恰好与CMake在内部表示列表完全相同:以分号分隔的项目。
如果没有双引号,列表将分为message
命令的参数:而不是单个字符串message
接收3个参数。并且message
命令处理多个参数,使得参数只是一个接一个地打印出来。
获取列表长度的正确语法是:
list(LENGTH mylist mylen)