我希望您能够从以下内容中获取灵感: https://cmake.org/cmake/help/v3.0/command/macro.html
我做:
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 上的迭代似乎没有发生。
我错过了什么吗?
下面是问题的回答: 将列表传递给cmake宏 说明如何将参数打印为列表,但没有说明如何对它们进行迭代。
ARGN
不是普通变量。关于如何针对列表克服这个问题,请参见此处:https://dev59.com/BW435IYBdhLWcg3wuiqz - Tsyvarev