Linux下使用cmake编译,利用yaml-cpp读取yaml文件


前言

本文主要是用来记录一下Linux系统下,对yaml-cpp学习及使用过程中的一些问题。供大家一起交流学习。
yaml-cpp 是一个开源库,地址为https://github.com/jbeder/yaml-cpp
yaml-cpp 是通过 CMake 来进行构建和编译的。所以你必须先安装了cmake,此步骤自己去寻找


一、yaml-cpp安装?

安装方式有两种,一种是直接clone,然后安装,另外一种是去其官网,去下载。
两者区别就是第二种可以选择版本号。
去其官网下载之后,解压到根目录。

然后

cd yaml-cpp/
mkdir build
cd build
cmake ..
make
sudo make install

最后一步的安装,一定要加sudo,要不然权限不够,库文件和头文件复制不到根目录下去。

二、编写文件

1.示例

我主要是用cmake进行编译的。

mian3文件:

//main3文件
#include <yaml-cpp/yaml.h> //yaml-cpp 头文件
#include <iostream>

int main(int argc, char** argv) {
    try {
        YAML::Node node = YAML::LoadFile("/home/liukaishu/catkin_ws/src/ros21/learning_topic/config/test.yaml");
        std::cout << node << std::endl; //输出yaml数据
    } catch (...) { //文件为非yaml格式抛出异常
        std::cout << "error" << std::endl;
    }
    return 0;
}

test.yaml文件

//test.yaml文件
logs:
    - name: root
      level: info
      appenders:
          - type: FileLogAppender
            file: "./log.txt"
          - type: StdoutLogAppender
    - name: system
      level: warn
      appenders:
          - type: FileLogAppender
            file: "./log.txt"
          - type: StdoutLogAppender

CMakeLists

cmake_minimum_required(VERSION 2.8.3)
project(learning_topic)
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(catkin REQUIRED COMPONENTS
  geometry_msgs
  roscpp
  rospy
  std_msgs
  turtlesim
  message_generation
)

find_package(yaml-cpp REQUIRED)
add_executable(main3 src/main3.cpp)
include_directories(/usr/local/include/yaml-cpp)
target_link_libraries(main3 /usr/local/lib/libyaml-cpp.a)

一定要链接最后两个库,这个特别重要

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂研究生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值