簡體   English   中英

如何獲取未知長度的CMake列表的最后一個元素?

[英]How do I get the last element of a CMake list of unknown length?

我有一個未知長度的列表,其中包含字符串。 我想將倒數第二個項目與倒數第二個項目進行比較,但是我找不到一種簡單的方法來檢索這些元素,因此可以對它們進行比較。

我嘗試獲取列表的長度,然后使用(length-1)作為傳遞給列表GET函數的索引,但這似乎不起作用。

set(my_list a b c) # I don't actually know the length of the original list
list(LENGTH my_list list_len)
list(GET my_list (list_len-1) last_item) # doesn't work

我希望將元素c保存在last_item變量中,但它仍然為空。 在CMake中執行此操作的正確方法是什么?

您必須使用math才能執行數學運算。

list(LENGTH my_list list_len)
math(EXPR list_last "${list_len} - 1")
list(GET my_list ${list_last} last_item)

編輯 :可以使用負數從列表末尾獲取元素,可以使用-1來獲取列表的最后一項:

list(GET my_list -1 last_item)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM