cmake字符串没有引号和引号

时间:2015-08-04 22:26:35

标签: cmake

我使用以下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})

1 个答案:

答案 0 :(得分:4)

${mylist}是三个项目的列表,如果用双引号将其呈现为字符串。列表的字符串表示恰好与CMake在内部表示列表完全相同:以分号分隔的项目。

如果没有双引号,列表将分为message命令的参数:而不是单个字符串message接收3个参数。并且message命令处理多个参数,使得参数只是一个接一个地打印出来。

获取列表长度的正确语法是:

list(LENGTH mylist mylen)