2011-08-18 151 views
19

为什么下面的命令不起作用?Cmake list-get命令

SET(MY_LIST a b c d) 
LIST(GET ${MY_LIST} 0 HEAD) 
MESSAGE("HEAD = ${HEAD}") 

我希望它分配给aHEAD而是我越来越NOTFOUND

我已经尝试围绕${MY_LIST}用双引号,并将索引更改为1而不是0(不知道为什么有人会这样做,但它并没有伤害尝试)。

回答

28

list commands需要unsubstituted变量作为第二个参数,即:

set (MY_LIST a b c d) 
list (GET MY_LIST 0 HEAD) 
message ("HEAD = ${HEAD}") 
+0

真棒。我(仍然)在文档中没有看到。谢谢! – freitass

+1

从文档中确实不太清楚。 CMake文档不包含使用示例是很糟糕的。 :-( – Ignitor

+0

令人惊讶地不清楚,谢谢你的光芒 –