cmake - 将列表传递给 CMake 宏

标签 cmake

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

代码:

    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" )

最佳答案

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

FindLibs("${LIBRARY_NAMES_LIST}")

关于cmake - 将列表传递给 CMake 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248749/

相关文章:

c++ - cmake多库场景

gcc - 如何使用 CMake 和 Gfortran 错误读取 stracktrace

cmake - 根据 CMAKE_VERBOSE_MAKEFILE 静音自定义命令

c++ - 使用 cmake 包含我自己的共享库

c++ - GTest链接错误: undefined reference to 'foo::function'

ubuntu - CMAKE_PREFIX_PATH 没有按预期工作

c++ - cmake 生成多个 compile_commands.json?

cmake - cmake无效的数字参数'/Wextra'

cmake - 在 CMake 中转发无值函数参数的简单方法

qt - CMake 如何知道要使用哪个版本的 Qt?