gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:32:12 31 4
gpt4 key购买 nike

我正在尝试使用 yaml-cpp在我的项目中。通过尝试以下名称,我花了半个小时才正确链接库。在我终于在 this file 中偶然发现它们之后,我解决了这个问题:

find_package(yaml-cpp REQUIRED)
include_directories(${YAML_INCLUDE_DIRS})
target_link_libraries(${YAML_CPP_LIBRARIES})

它有效,但我搜索这些的方式似乎很愚蠢。

如何远程找出包含变量的正确名称?可以是YAML_LIBSYAML_LIBRARYYAML_CPP_LIBRARIES,没有标准吧?为大多数 C++ 库确定正确的 cmake 配置的合适方法是什么?

谢谢。

最佳答案

大多数 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_package(yaml-cpp) 的结果是

include_directories(${YAML_CPP_INCLUDE_DIRS})
target_link_libraries(<your-target> ${YAML_CPP_LIBRARIES})

关于c++ - 为 yaml-cpp 库查找正确的 cmake 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51036144/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com