C++ 为yaml cpp库查找正确的cmake配置

C++ 为yaml cpp库查找正确的cmake配置,c++,cmake,yaml-cpp,C++,Cmake,Yaml Cpp,我试图在我的项目中使用。我花了半个小时的时间通过试验以下名称来正确链接库。在我最终偶然发现他们之后,我决定: find_package(yaml-cpp REQUIRED) include_directories(${YAML_INCLUDE_DIRS}) target_link_libraries(${YAML_CPP_LIBRARIES}) 这是可行的,但我寻找这些东西的方式似乎没有头脑 如何远程计算出包含变量的正确名称?它可能是YAML_LIBS,YAML_库,YAML_CPP_库,没有

我试图在我的项目中使用。我花了半个小时的时间通过试验以下名称来正确链接库。在我最终偶然发现他们之后,我决定:

find_package(yaml-cpp REQUIRED)
include_directories(${YAML_INCLUDE_DIRS})
target_link_libraries(${YAML_CPP_LIBRARIES})
这是可行的,但我寻找这些东西的方式似乎没有头脑

如何远程计算出包含变量的正确名称?它可能是
YAML_LIBS
YAML_库
YAML_CPP_库
,没有标准,对吗?什么是确定大多数C++库正确的CMADE配置的合适方法?< /P>
谢谢。

大多数
FindXXX.cmake
脚本的顶部都有使用说明(当cmake注释开始时)。
XXXConfig.cmake
(或
xxx config.cmake
)脚本也是如此

命令
find_package(XXX)
使用这样的脚本之一(实际存在的脚本)。因此,在使用这种方法发现包之前,请确保您已经阅读了“嵌入”到此类脚本中的描述

在您的情况下,
yaml cpp config.cmake
文件(在构建或安装目录中创建)包含以下描述:

# - Config file for the yaml-cpp package
# It defines the following variables
#  YAML_CPP_INCLUDE_DIR - include directory
#  YAML_CPP_LIBRARIES    - libraries to link against
因此,正确使用
find_包(yaml-cpp)
的结果非常重要

include_directories(${YAML_CPP_INCLUDE_DIRS})
target_link_libraries(<your-target> ${YAML_CPP_LIBRARIES})
include_目录(${YAML_CPP_include_DIRS})
目标链接库(${YAML\U CPP\U库})

大多数
FindXXX.cmake
脚本的顶部都有使用说明(当cmake注释开始时
)。
XXXConfig.cmake
(或
xxx config.cmake
)脚本也是如此

命令
find_package(XXX)
使用这样的脚本之一(实际存在的脚本)。因此,在使用这种方法发现包之前,请确保您已经阅读了“嵌入”到此类脚本中的描述

在您的情况下,
yaml cpp config.cmake
文件(在构建或安装目录中创建)包含以下描述:

# - Config file for the yaml-cpp package
# It defines the following variables
#  YAML_CPP_INCLUDE_DIR - include directory
#  YAML_CPP_LIBRARIES    - libraries to link against
因此,正确使用
find_包(yaml-cpp)
的结果非常重要

include_directories(${YAML_CPP_INCLUDE_DIRS})
target_link_libraries(<your-target> ${YAML_CPP_LIBRARIES})
include_目录(${YAML_CPP_include_DIRS})
目标链接库(${YAML\U CPP\U库})

RTFM;-):通过阅读Findyaml cpp的文档,如果这还不够的话,通过查看
CMAKE.in
文件检查CMAKE_模块中Findyaml cpp的来源:那么这是一个配方吗?安装新库时,在文件?RTFM;-)中查找
.cmake.:通过阅读Findyaml cpp的文档,如果这还不够的话,通过查看
CMAKE.in
文件检查CMAKE_模块中Findyaml cpp的来源:那么这是一个配方吗?安装新库时,请在
文件中查找
.cmake.in?我所需要的一切。谢谢,我所需要的一切。非常感谢。