本文介绍了将列表传递给 CMake 宏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一个通过给定库列表的宏.然而,宏中的消息调用仅打印列表的第一项.我在这里做错了什么?

I am trying to write a macro which goes through a given list of libraries. However the message call in the macro prints only the first item of the list. What am I doing wrong here?

代码:

    macro( FindLibs LIBRARY_NAMES_LIST )
        message( "inside ${LIBRARY_NAMES_LIST}" )
    endmacro()

    set( LIBRARY_NAMES_LIST lib1 lib2 lib3)
    message( "outside ${LIBRARY_NAMES_LIST}" )
    FindLibs(${LIBRARY_NAMES_LIST})

输出:

message( "outside lib1 lib2 lib3" )
message( "inside lib1" )

推荐答案

在将变量传递给宏时引用它:

Quote the variable as you pass it to the macro:

FindLibs("${LIBRARY_NAMES_LIST}")

这篇关于将列表传递给 CMake 宏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 09:13