CMakeList中find_library⽤法在CMakeList中,有时需要 寻 三⽅库,通常是使⽤ find_libaray 来进⾏查的。
find_library(名称1 [path1 path2 …])
作⽤:⽤于查库。
VAR 创建名为的缓存条⽬以存储此命令的结果。
如果到了库,结果将存储在变量中,除⾮清除变量,否则将不会重复搜索。
如果什么也没到,结果将是-NOTFOUND。
REQUIRED如果未到任何内容,该选项将停⽌处理并显⽰⼀条错误消息,
否则,下次使⽤相同的变量调 ⽤find_library时,将再次尝试搜索。
NAMES 为库指定⼀个或多个可能的名称。
HINTS, PATHS 除了默认位置,还指定要搜索的⽬录。该⼦选项读取系统环境变量的路径。
DOC 指定缓存条⽬的⽂档字符串。
REQUIRED 如果未到任何内容,则停⽌处理并显⽰错误消息。
Example1 :
⽐如,我们经常会查三⽅库。我们以VTK的中CMakeList 为例,如下
find_library(GLEW_LIBRARY
exists的用法NAMES GLEW glew32
DOC "glew library")
# ${CMAKE_CURRENT_LIST_DIR}/lib/Release ⽬录下,查gpgjpeg库⽂件。
find_library(GPUJPEG_LIBRARY NAMES gpujpeg
HINTS ${CMAKE_CURRENT_LIST_DIR}/lib/Release)
find_library(GPUJPEG_LIBRARY_RELEASE NAMES gpujpeg
HINTS ${CMAKE_CURRENT_LIST_DIR}/lib/Release)
find_library(GPUJPEG_LIBRARY_DEBUG NAMES gpujpeg
HINTS ${CMAKE_CURRENT_LIST_DIR}/lib/Debug)
# 将GPUJPEG_LIBRARY 这个变量设置在THIRDPARTY_LIBRARIES 中
set(THIRDPARTY_LIBRARIES ${GPUJPEG_LIBRARY})
set(THIRDPARTY_LIBRARIES_RELEASE ${GPUJPEG_LIBRARY_RELEASE})
set(THIRDPARTY_LIBRARIES_DEBUG ${GPUJPEG_LIBRARY_DEBUG})
# 设置 TARGETS_GPUJPEG 路径⽂件,如果包含这个路径的⽂件,则包含这个*.cmake
set(TARGETS_GPUJPEG "${CMAKE_CURRENT_LIST_DIR}/ake")
if(EXISTS ${TARGETS_GPUJPEG})
include(${TARGETS_GPUJPEG})
endif()
参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。