jbeder / yaml-cpp
yaml-cpp 是一个符合 YAML 1.2 规范的 C++ YAML 解析器和发射器。
用法
请参考 Tutorial 和 How to Emit YAML 文档。对于旧版 API(直至 0.5.0),请参见 How To Parse A Document。
如何构建
yaml-cpp 使用 CMake 来支持跨平台构建。在开始之前,请先安装 CMake(Resources -> Download)。
基本构建步骤如下:
注意: 如果你没有使用平台提供的安装程序,请确保将 CMake 的 bin 文件夹添加到你的路径中。
- 进入源码目录,创建构建文件夹并运行 CMake:
mkdir build
cd build
cmake [-G generator] [-DYAML_BUILD_SHARED_LIBS=on|OFF] ..
generator 选项是你想使用的构建系统。运行不带参数的 cmake 可以查看所有可用的生成器列表。
- 在 Windows 上,你可以使用
"Visual Studio 12 2013"(VS 2013 32 位)或"Visual Studio 14 2015 Win64"(VS 2015 64 位)。 - 在 OS X 上,你可以使用
"Xcode"。 - 在类 UNIX 系统上,省略该选项(将使用 Makefile)。
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 文件。
- 开始构建!
你需要运行的命令取决于你之前选择的生成器。
注意: 要清理构建,只需删除 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 库的库或可执行文件
近期发布
- yaml-cpp 0.9.0 已发布!
- 如果你需要旧版 API,yaml-cpp 0.3.0 仍然可用。旧版 API 将在 2026 年停止接收错误修复。0.3.x 版本提供旧版 API,而 0.5.x 及以上版本均提供新版 API。
API 文档
自动生成的 API 参考文档托管在 [CodeDocs](https://codedocs.xyz/jbeder/yaml-cpp/) 上。
第三方集成
以下项目并非官方支持:
- Qt 封装
- UnrealEngine 封装