建议先看一下前面一篇文章,简单介绍了yaml是什么和相关资料汇总:
yaml基本介绍 + vs2017配置
linux里的配置方法就直接多了,没有眼花缭乱的界面和平台限制。。。
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
)分别放到这俩路径里了。
// test_yaml.cc
#include
#include
template
void operator>>(const YAML::Node& node, T& i);
double test_param1;
double test_param2;
template
void operator>>(const YAML::Node& node, T& i) {
i = node.as();
};
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
这样现代化第三方库引用工具,可以通过很简单的配置轻松引用其他开源的工作成果。