一.yaml-cpp的安装
1.下载
终端下执行:
git clone https://github.com/jbeder/yaml-cpp.git
2.编译安装
利用Cmake有点类似于opencv的安装,终端cd进入yaml-cpp文件夹下后执行:
mkdir build #新建build 文件夹
cd build
cmake -DBUILD_SHARED_LIBS=ON .. #ON 设置生成共享库
sudo make install
3.验证
pkg-config --modversion yaml-cpp
出现版本信息
二.测试
build文件夹,config.yaml,CmakeList.txt,main.cpp 在同一个文件夹下。config.yaml,CmakeList.txt,main.cpp我是用vim写的
1.CmakeList.txt
cmake_minimum_required(VERSION 2.8)
project(yaml_test) #yaml_test为项目名称set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
link_directories(/home/mingyang/yaml-cpp/build) #链接到build路径,具体要看自己电脑中yaml-cpp/build在哪里
#链接到yaml-cpp/include/yaml-cpp路径,建议直接链接到这里,以后编程头文件直接为#include "yaml.h" 即可include_directories(/home/mingyang/yaml-cpp/include/yaml-cpp)
add_executable(${PROJECT_NAME} main.cpp) #main.cpp为自己写的.cpp文件名,与CmakeList.txt文件在一个文件夹下
target_link_libraries(${PROJECT_NAME} yaml-cpp) #yaml_test为项目名称
2. config.yaml 名字随意,.yaml就行,对应 main.cpp 中文件加载语句
name: frank
sex: male
age: 18
skills:
c++: 1
java: 1
android: 1
python: 1
2.main.cpp 名字随意,.cpp就行,对应 CmakeList.txt文件
#include<iostream>
#include"yaml.h"using namespace std;
using namespace YAML;int main(int argc,char** argv)
{
Node config = LoadFile("../config.yaml");
cout<<"name:"<<config["name"].as<string>()<<endl;
cout<<"sex:"<<config["sex"].as<string>()<<endl;
cout<<"age:"<<config["age"].as<int>()<<endl;
return 0;
}
3.编译运行
终端进入build 文件夹后执行:
cmake .. #cmake+空格+..
make
./yaml_test #CmakeList.txt中对应的项目名,此时build中也能够看到