利用 yaml-cpp 开源库读写 yaml 配置文件—— yaml-cpp安装配置

这篇具有很好参考价值的文章主要介绍了利用 yaml-cpp 开源库读写 yaml 配置文件—— yaml-cpp安装配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

本文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。
主要参考了网上的大牛们的文章,这里只是做简单记录。

YAML简介

YAML语言的设计目标,就是方便人类读写,实质上是一种通用的数据串行化格式。

1.基本语法规则

1)大小写敏感
2)使用缩进表示层级关系
3)缩进时不允许使用Tab键,只允许使用空格。
4)缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
5)# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

YAML支持的数据结构有三种。
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
纯量(scalars):单个的、不可再分的值

2.语法

key: value;kv之间有空格 k: v
注:
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释
字符串默认不使用引号表示。如果字符串之中包含空格或特殊字符,需要放在引号之中
单引号和双引号都可以使用,双引号不会对特殊字符转义
单引号之中如果还有单引号,必须连续使用两个单引号转义
字符串可以写成多行,从第二行开始,必须有一个单空格缩进
换行符会被转为空格

yaml-cpp简单介绍

yaml-cpp 是一个开源库,地址在 github 上,https://github.com/jbeder/yaml-cpp
yaml-cpp 是通过 CMake 来进行构建和编译的

与OpenCV的简单比较

一般常用yaml-cpp和OpenCV进行解析
相比yaml-cpp,OpenCV的优点是可以在YAML文件中存储矩阵,读出来就是cv::Mat格式;缺点是OpenCV要求YAML文件有一个特殊的头,与标准的YAML文件并不兼容
或者也可以理解为OpenCV定义了一种新的YAML格式

yaml-cpp安装配置

1)下载源码
2)在源码目录创建一个 build 文件夹

mkdir build

3)进入到 build 文件夹,然后执行 cmake 命令

cd build
cmake ..

注: cmake 后面是 …,这代表从 build 上一层目录查找 CMakeLists.txt ,然后编译的文件都会存放在 build 文件夹,如果对编译的效果不满意,只要删除 build 文件就好了,其他源码目录并不受影响。

yaml-cpp 默认构建的是静态库,也就是 .a 文件,如果想构建动态库的话,就需要在 cmake 时指定

cmake -D BUILD_SHARED_LIBS=ON ..

4)编译成功后,会生成库文件,只需要将库文件和头文件拷贝到你自己的工程当中,就ok了
注:如果不想每次都到 copy 头文件到不同的工程中,
那么可以将头文件 copy 到系统默认的头文件目录,比如 ubuntu 的地址是 /usr/local/include,
将库文件拷贝到系统默认的 lib 文件,比如 ubuntu 是 /usr/local/lib。

5)或者不进行拷贝,继续进行如下步骤文章来源地址https://www.toymoban.com/news/detail-413785.html

make
sudo make install

CMakeLists配置

find_package(yaml-cpp REQUIRED)
include_directories(${YAML_CPP_INCLUDE_DIR})
target_link_libraries(node_name yaml-cpp)

到了这里,关于利用 yaml-cpp 开源库读写 yaml 配置文件—— yaml-cpp安装配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • API Testing 一个基于 YAML 文件的开源接口测试工具

    目录 前言: 如何使用? 本地模式 服务端模式 文件格式 后续计划 API Testing 是一个基于 YAML 文件的开源接口测试工具,它可以帮助开发者快速地进行接口测试。 在选择工具时,可以从很多方面进行考量、对比,以下几点是该工具的特色或者优点:

    2024年02月16日
    浏览(45)
  • 【C++】开源:abseil-cpp基础组件库配置使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍abseil-cpp基础组件库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/abseil/abseil-cpp 官网:

    2024年02月13日
    浏览(50)
  • 【C++】开源:matplotlib-cpp静态图表库配置与使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍matplotlib-cpp图表库配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/lava/matplotlib-cpp matpl

    2024年02月14日
    浏览(42)
  • Yaml配置文件读取方法

    在日常的代码中,有一些值是配置文件中定义的,这些值可以根据用户的要求进行调整和改变。这往往会写在yaml格式的文件中。这样开放程序给用户时,就可以不必开放对应的源码,只开放yaml格式的配置文件即可。 将配置文件中的值读入程序也非常的简单。 我们先写一个简

    2024年02月11日
    浏览(51)
  • Keburnetes YAML配置文件管理

    Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式 :主要用于 api 接口之间消息的传递 YAML 格式 :用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 YAML 语法格式 大小写敏感 使用缩进表示层级关系 不支持Tab键制表符缩进,只使用空格缩进 缩进的

    2024年02月14日
    浏览(39)
  • 一、SpringBoot基础[Yaml配置文件]

    解释:application.yaml用来替代application.properties文件,如果文件中有较多的配置时,使用Yaml明显方便了许多 application.properties文件格式: Yaml文件格式: 注意:写的时候冒号后面必须加空格否则没有任何效果 1.对象 2.数组 解释:下面的 - 就表示一个列表内容,有的则是 [] 表示

    2024年02月15日
    浏览(46)
  • java利用缓冲区及流式对大文件进行高效读写

    当处理大文件时,使用适当的技术和方法可以提高读写性能和效率。下面是一些针对大文件读写的示例说明: 字符流 缓冲区及分块读写  BufferedInputStream 和 BufferedOutputStream 大文件读取: try (FileInputStream fis = new FileInputStream(\\\"largefile.txt\\\");      BufferedInputStream bis = new BufferedInp

    2024年02月07日
    浏览(40)
  • 【Springboot】yaml配置文件&多环境切换

    关于配置文件的详细说明可以看官方文档: 24. Externalized Configuration 以下是个人学习过程中的笔记,如有错误,请多指教! 目录 (一)配置文件 (二)yaml的概述及基本使用         yaml基本语法 (三)注入配置文件的三种方式 (四)yaml配置文件位置 (五)多环境切换

    2024年02月06日
    浏览(40)
  • yolov7简化yaml配置文件

    yolov7代码结构简单,效果还好,但是动辄超过70几个模块的配置文件对于想要对网络进行魔改的朋友还是不怎么友好的,使用最小的tiny也有77个模块 代码的整体结构简单,直接将ELAN结构化写成一个类就能像yolov5一样仅仅只有20几个模块,方便对网络结构进行魔改,看着也不容

    2024年02月09日
    浏览(38)
  • springboot篇---配置文件yaml篇2

    1.语法结构分类: application.properties 语法结构 :key=value application.yml 语法结构 :key:空格 value **配置文件的作用 :**修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了  2.yaml概述 YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包