如何使用find_library命令在Cmake中查找多个库?

x7yiwoj4  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(342)

我想把我的目标库链接到一批库中,这些库位于一个特定的目录中。但似乎find_library命令一次只能匹配一个lib。

0s0u357o

0s0u357o1#

实际上,您一次只能匹配一个库。但是,您可以进行多个单库匹配,然后将它们放在一个_LIBRARIES变量中。下面是一个示例片段:

find_library(MYMODULE_FIRST_LIBRARY NAMES MyLib1
      PATHS
      /usr/lib
      /usr/local/lib
      )
  find_library(MYMODULE_SECOND_LIBRARY NAMES MyLib2
      PATHS
      /usr/lib
      /usr/local/lib
      )
  if(MYMODULE_FIRST_LIBRARY AND MYMODULE_SECOND_LIBRARY)
    set(MYMODULE_LIBRARIES ${MYMODULE_FIRST_LIBRARY} ${MYMODULE_SECOND_LIBRARY})
    set(MYMODULE_FOUND TRUE)
    message(STATUS "Found MYMODULE: ${MYMODULE_LIBRARIES}")
    mark_as_advanced(MYMODULE_LIBRARIES MYMODULE_FIRST_LIBRARY MYMODULE_SECOND_LIBRARY)

然后,客户端代码将${MYMODBLE_LIBRARIES}添加到链接行。请注意,所有这些都是使用旧的风格使用查找。更现代的方法使用CONFIG和TARGETS而不是Find*.cmake文件。
查找这方面示例的一个好地方是随CMake一起沿着安装的内置Find*.cmake文件。

相关问题