我想把我的目标库链接到一批库中,这些库位于一个特定的目录中。但似乎find_library命令一次只能匹配一个lib。
find_library
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文件。
1条答案
按热度按时间0s0u357o1#
实际上,您一次只能匹配一个库。但是,您可以进行多个单库匹配,然后将它们放在一个_LIBRARIES变量中。下面是一个示例片段:
然后,客户端代码将${MYMODBLE_LIBRARIES}添加到链接行。请注意,所有这些都是使用旧的风格使用查找。更现代的方法使用CONFIG和TARGETS而不是Find*.cmake文件。
查找这方面示例的一个好地方是随CMake一起沿着安装的内置Find*.cmake文件。