ubuntu下yaml-cpp安装与使用-编程思维

安装

  1. 从GitHub上下载源码编译安装:git clone https://github.com/jbeder/yaml-cpp.git
  2. 进入源码目录并创建一个 build 目录:cd yaml-cpp && mkdir build && cd build
  3. cmake 一下:cmake -DYAML_BUILD_SHARED_LIBS=on ..,选项表示生成共享库..表示 cmake 所需的 CMakeList.txt 在上一级目录中;
  4. 常规操作 sudo make然后sudo make install
  5. 需要sudo ldconfig更新一下共享库;
  6. 头文件在/usr/local/include,库文件在/usr/local/lib

使用

一个简单的例子,编写一个配置文件config.yaml,有关简单的 yaml 语法,参考yaml 入门教程

# 违规规则库
illegal_rules:
  - rm -rf /*
  - reboot
  - shutdown
  - poweroff

编写一个 main.cpp

#include <iostream>
#include <yaml-cpp/yaml.h>

using namespace std;

int main()
{
    YAML::Node config = YAML::LoadFile("./config.yaml");
    vector<string> illegal_rules = config["illegal_rules"].as<vector<string>>();
    cout << illegal_rules.size() << endl;
    for (const string s : illegal_rules) {
        cout << s << endl;
    }
    return 0;
}

我的 Makefile 是这样的,make 一下生成可执行文件 main,然后执行./main即可。

cc = g++
OBJ = main

all:
	$(cc) -c ./*.cpp
	$(cc) -o $(OBJ) ./*.o /usr/local/lib/libyaml-cpp.so.0.7.0
	rm -rf ./*.o

clean:
	rm -rf ./*.o

注意指定 yaml 动态库的路径即可。

最后

如果你有疑惑,欢迎评论,我会尽可能回复!

如果本文对你有帮助,点个赞吧,这是我坚持的动力!

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://www.cnblogs.com/zwjason/p/17031701.html

sftp的用法-编程思维

记录一下 sftp 命令的简单常用方法。 使用 sftp 连接服务器。 语法:sftp -P 端口号 用户名@IP地址 例子:sftp -P 123 root@127.0.0.1 注意:指定端口时 -P 是要大写,没有指定端口则默认为 22 端口。 上传文件或文件夹。 语法:put 本地文件路径 远程存放目录

【分析笔记】linux input 子系统原理分析-编程思维

一、input 子系统简介 输入子系统主要用于支持各种输入设备,可大大简化这类设备驱动的开发难度。以下为个人的理解,可能不同的内核版本会略有差异,在这里分析的内核为 linux-4.9。 无论在 Linux 是什么子系统,其目的都是为了将硬件相关的进行解耦,提高代码的复用性,简化设备驱动的开发难度。Input 子系

集群存储(iscsi、nfs、mfs)linux7【转】-编程思维

1、存储网络划分 DAS :Direct-Attached Storage 直接附加存储 优点:不可取代 技术简单 传输速率最高 缺点:不可共享(存储设备与磁盘相互绑定) NAS :Network Attached Storage 网络附加存储 优点:实现了共享,不要求存储设备直连本机,只需在同局域网下即可 技术相

stl序列式容器使用注意、概念总结-编程思维

引入 最近看了《STL源码剖析》的第 4 章和第 5 章,介绍了 C++ STL 中的序列式容器和关联式容器,本文将总结序列式容器的基础概念,不会详细它们的实现原理(想知道自个儿看书吧,我目前只想了解它们的基本原理,用的时候心里有数就行)。 容器概念 容器是存储数据的地方。C++ STL 容器是一些常见数据结构的实现。

stl关联式容器使用注意、概念总结-编程思维

引入 继上文 STL序列式容器使用注意、概念总结 继续总结关联式容器的概念以及一些使用事项。 关联式容器与容器适配器 基础容器 STL 中的关联式底层容器:RB tree, hash table,可以作为其他容器的底层结构。 1.RB tree RB tree 红黑树这玩意儿可是重量级的,书中从基本的树概念讲起,到二

csapp 配套实验 datalab-编程思维

第一次写博客,当作随笔留给自己看吧,如果能帮到读者,是我的荣幸。 这是 CSAPP 的配套实验 DataLab,概括的来说就是在较严格的限制条件下把 15 个函数补充完整。 本人能力没有那么强,很多题目都是借鉴了(抄袭了= =)网上大佬的做法,当然也有些题目看不懂大佬的做法,但是结合了大佬的思想,自己写了出来。 很多函

c++ | 引用-编程思维

01.引用概述 1.1 创建引用变量 引用是已定义的变量的别名(另一个名称)。 int a; int &b = a; // 将b作为a变量的别名 C和C++使用&符号来指示变量的地址。C++给&符号赋予了另一个含义,将其用来声明引用。其中,&不是取址运算符,而是类型标识符的一部分(就像

括号匹配算法-编程思维

算法思想 /* 括号匹配算法 扫描字符串,遇到左括号 入栈,遇到右括号 出栈顶元素 */ 数据结构 定义存字符串的栈 #include <stdio.h> #include <string.h> #define Maxsize 10 typedef struct { char