← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

jbeder yaml-cpp


jbeder / yaml-cpp

yaml-cpp 是一个符合 YAML 1.2 规范的 C++ YAML 解析器和发射器。

用法

请参考 TutorialHow to Emit YAML 文档。对于旧版 API(直至 0.5.0),请参见 How To Parse A Document

如何构建

yaml-cpp 使用 CMake 来支持跨平台构建。在开始之前,请先安装 CMake(Resources -> Download)。

基本构建步骤如下:

注意: 如果你没有使用平台提供的安装程序,请确保将 CMake 的 bin 文件夹添加到你的路径中。

  1. 进入源码目录,创建构建文件夹并运行 CMake:
  2. mkdir build
    cd build
    cmake [-G generator] [-DYAML_BUILD_SHARED_LIBS=on|OFF] ..

generator 选项是你想使用的构建系统。运行不带参数的 cmake 可以查看所有可用的生成器列表。

yaml-cpp 默认构建为静态库,你也可以通过指定 -DYAML_BUILD_SHARED_LIBS=ON 来构建共享库。

当 yaml-cpp 和客户端代码都使用 _GLIBCXX_DEBUG 标志编译时(例如通过 -D CMAKE_CXX_FLAGS_DEBUG='-g -D_GLIBCXX_DEBUG' 选项调用 CMake),可以使用 GNU 标准 C++ 库的调试模式。请注意,为了让 yaml-cpp 单元测试成功运行,GoogleTest 库也必须使用该标志构建,即不能使用系统自带的 GoogleTest(必须将 YAML_USE_SYSTEM_GTEST CMake 选项设置为 OFF,这也是默认值)。

有关自定义构建的更多选项,请参见 CMakeLists.txt 文件。

  1. 开始构建!

你需要运行的命令取决于你之前选择的生成器。

注意: 要清理构建,只需删除 build 目录。

如何在你的项目中使用 CMake 集成 yaml-cpp

你可以使用例如 FetchContent

include(FetchContent)
FetchContent_Declare(
  yaml-cpp
  GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
  GIT_TAG   # 可以是标签(yaml-cpp-x.x.x)、提交哈希或分支名称(master)
)
FetchContent_MakeAvailable(yaml-cpp)
target_link_libraries(YOUR_LIBRARY PUBLIC yaml-cpp::yaml-cpp)  # 需要 yaml-cpp 库的库或可执行文件

近期发布

自动生成的 API 参考文档托管在 [CodeDocs](https://codedocs.xyz/jbeder/yaml-cpp/) 上。

第三方集成

以下项目并非官方支持:

📖 阅读原文 →