前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cpp(十一) yaml-cpp的使用

Cpp(十一) yaml-cpp的使用

作者头像
Autooooooo
发布2021-03-02 15:15:25
2.9K0
发布2021-03-02 15:15:25
举报
文章被收录于专栏:CoxhuangCoxhuang

YamlCpp

#1 环境

代码语言:javascript
复制
macOS 10.15.5
Cmake 

#2 安装

代码语言:javascript
复制
git clone git@gitee.com:Coxhuang/yaml-cpp.git
cd yaml-cpp
mkdir build
cd build
代码语言:javascript
复制
# 二选一
# 静态库 
cmake ..
# 动态库
cmake ..  -D BUILD_SHARED_LIBS=ON
代码语言:javascript
复制
make 
sudo make install

安装后,库文件和头文件路径:

头文件: /usr/local/include/yaml-cpp

库文件: /usr/local/lib/libyaml-cpp.a

#3 使用

#3.1 Cmake配置文件

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.17)
project(yaml_demo)

set(CMAKE_CXX_STANDARD 14)

include_directories(/usr/local/include)

find_package (PkgConfig REQUIRED)
pkg_check_modules(YAMLCPP REQUIRED yaml-cpp) # 查找yaml-cpp 

link_directories(
    ${YAMLCPP_LIBRARY_DIRS} # 添加yaml-cpp库文件路径 
)

add_executable(yaml_demo main.cpp)

target_link_libraries(yaml_demo
    ${YAMLCPP_LIBRARIES} # 将yaml-cpp库连接到yaml_demo可执行文件中 
)

#3.2 使用

  • 新建yaml文件
代码语言:javascript
复制
name: Cox
sex: male
age: 18

skills:
  C++: 1
  Python: 1
  • 使用
代码语言:javascript
复制
#include <iostream>
#include "yaml-cpp/yaml.h"

int main() {
    YAML::Node config = YAML::LoadFile("../config.yaml");
    std::cout << "name:" << config["name"].as<std::string>() << std::endl;
    std::cout << "sex:" << config["sex"].as<std::string>() << std::endl;
    std::cout << "age:" << config["age"].as<int>() << std::endl;

    for (auto foo : config["skills"]) {
        std::cout << foo.first.as<std::string>() << ":" << foo.second.as<bool>() << std::endl;
    }

    return 0;
}

输出:

代码语言:javascript
复制
name:Cox
sex:male
age:18
C++:1
Python:1
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • YamlCpp
    • #1 环境
      • #2 安装
        • #3 使用
          • #3.1 Cmake配置文件
          • #3.2 使用
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档