Linux yaml-cpp组件配置

Posted zkccpro

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux yaml-cpp组件配置相关的知识,希望对你有一定的参考价值。

Linux yaml-cpp组件配置

建议先看一下前面一篇文章,简单介绍了yaml是什么和相关资料汇总:
yaml基本介绍 + vs2017配置
linux里的配置方法就直接多了,没有眼花缭乱的界面和平台限制。。。

1. 下载、构建、 编译:

git clone https://github.com/jbeder/yaml-cpp.git # clone下来
cd yaml-cpp
mkdir build # 一样的新建一个build路径中构建,要不cmake出的文件与原文件混在一起太乱了
cd build 
cmake ..
make # 按camke生成的makefile文件进行编译,编译生成可执行文件和静态链接库文件
make install # make install命令是吧make产生的 静态库文件 和 头文件放到系统指定路径下,这样任何工程都可以无障碍地引用yaml库了

linux环境中g++的:

默认头文件路径:/usr/local/inclue

默认库文件路径:/usr/local/lib/

所以,make install命令就是把头文件和库文件(libyaml-cpp.a)分别放到这俩路径里了。

2. 通过静态链接库使用yaml-cpp

// test_yaml.cc
#include <iostream> 
#include <yaml-cpp/yaml.h>
template <typename T>
void operator>>(const YAML::Node& node, T& i); 
double test_param1;
double test_param2;
template <typename T>
void operator>>(const YAML::Node& node, T& i) 
i = node.as<T>();
;
using namespace std;
void loadYamlFile(std::string name)
  YAML::Node node = YAML::LoadFile(name);
  node["test_param1"] >> test_param1;
  node["test_param2"] >> test_param2;
  
  cout << test_param1 << endl;
  cout << test_param2 << endl;


int main()

  loadYamlFile("./test.yaml");
  return 0;

// 参考:https://blog.csdn.net/qq_23350817/article/details/100514186

编译执行:

g++ test_yaml.cc -lyaml-cpp -o test_yaml && ./test_yaml # 对应库文件名:libyaml-cpp.a

不管咋说,c/c++工程的组织还是很僵硬的。。。门槛相对较高。

而go中的go modules和java中的maven 这样现代化第三方库引用工具,可以通过很简单的配置轻松引用其他开源的工作成果。

以上是关于Linux yaml-cpp组件配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux 中 yaml-cpp 0.5.3 的示例

如何使用 qtcreator 链接到 Arch Linux 上的 yaml-cpp?

为 yaml-cpp 库找到正确的 cmake 配置

为 yaml-cpp 库找到正确的 cmake 配置

在 yaml-cpp 中操作节点

CMake - 链接器错误与静态yaml-cpp作为git子模块