cmake_parse_arguments存储空字符串

问题描述 投票:0回答:1

我正在尝试使用cmake_parse_arguments的函数签名版本来镜像宏的示例:

include(CMakeParseArguments)

set(prefix PREFIX_)
set(${prefix}VAR "foo")
message(DEBUG " value of " "${prefix}VAR" " is " ${${prefix}VAR})

function(func)
    set(prefix ARG_)
    set(options OPTION)
    set(oneValueArgs VALUE)
    set(multiValueArgs MULTIVALUE)
    cmake_parse_arguments(PARSE_ARGV 0 "${prefix}" "${options}" "${oneValueArgs}" "${multiValueArgs}")

    message(DEBUG ${${prefix}UNPARSED_ARGUMENTS})
    message(DEBUG ${${prefix}OPTION})
    message(DEBUG ${${prefix}VALUE})
    message(DEBUG ${${prefix}MULTIVALUE})
endfunction(func)

func(VALUE 42 MULTIVALUE "foo" "bar" "baz")

消息输出为:

DEBUG value of PREFIX_VAR is foo
DEBUG
DEBUG
DEBUG
DEBUG

输出仅是空字符串。发生了什么事?

cmake arguments variadic-functions
1个回答
0
投票

摘自cmake_parse_arguments的文档:

© www.soinside.com 2019 - 2024. All rights reserved.