1
,其靈感來自迭代: https://cmake.org/cmake/help/v3.0/command/macro.htmlCMake的宏:如何在參數
我做的:
macro(ARGS_TEST)
message(WARNING "\nARGN: ${ARGN}\n")
foreach(arg IN LISTS ARGN)
message(WARNING "\n ARG : ${arg} \n")
endforeach()
endmacro()
ARGS_TEST(test 1 2 3)
它打印:
ARGN: test;1;2;3
但畢竟這沒什麼,這意味着迭代過ARGN似乎沒有發生。
我失蹤了嗎?
答到以下問題: Passing a list to a cmake macro
顯示如何打印參數作爲一個列表,而不是如何在他們
你錯過了東西來自於foreach page,在宏內' ARGN' [不是普通變量](https://cmake.org/cmake/help/v3.7/command/macro.html)。關於克服這個列表看到這裏:http://stackoverflow.com/questions/5248749/passing-a-list-to-a-cmake-macro – Tsyvarev
@Tsyvarev是的,但我正在從文檔的例子 - ;關於可能的重複,它似乎沒有回答我的問題,它將列表轉換爲一個字符串,而不是允許迭代它(或者我不明白答案?) – Vince
'我正在遵循doc'中的示例 - 如果你談論最後一個例子,它在函數**中使用宏調用**。在這種情況下,宏從函數*中取* ARGN *變量*。仔細閱讀。但是,重複實際上是錯誤的,對不起。 – Tsyvarev