cmake 库的不同引用方式

2021-07-13  本文已影响0人  book_02

1. 不同库有不同的引用方式

OpenCV 使用 ${OpenCV_LIBS}

target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

protobuf 使用 ${PROTOBUF_LIBRARIES}

target_link_libraries(${PROJECT_NAME} ${PROTOBUF_LIBRARIES})

jpeg-turbo 使用 libjpeg-turbo::turbojpeg-static 的target名称

target_link_libraries(${PROJECT_NAME} libjpeg-turbo::turbojpeg-static)

2. 怎么确定使用哪种方式

一般有如下方法:

  1. 查找 cmake 文件,看其使用说明。(一般写得好的cmake文件会有使用说明)
  2. 查找网上其他人是怎么使用的
  3. 搜 cmake 文件是否有相关的变量,比如搜OpenCV的相关cmake文件是否有"OpenCV_LIBS"变量
  4. 查 cmake 文件中相关的target名称

2.1 查找 cmake 文件,看其使用说明

比如OpenCV
在OpenCVConfig.cmake文件顶部会有使用说明如下:

image

2.2 搜 cmake 文件是否有相关的变量

比如 protobuf
在protobuf-module.cmake中搜到 PROTOBUF_LIBRARIES 变量

image

2.3 查 cmake 文件中相关的target名称

比如jpeg-turbo
查看 libjpeg-turboTargets.cmake 文件发现相关的target: libjpeg-turbo::turbojpeg-static

image

不知道大家都是怎么确定的呢

上一篇下一篇

猜你喜欢

热点阅读