对YAML :: LoadFile的未定义引用

对YAML :: LoadFile的未定义引用

起语:
版权声明:
对YAML :: LoadFile的未定义引用_第1张图片
原文:
http://www.sylar.top/blog/?p=103

YAML 介绍

YAML是一种结构化的文档结构,类似于json,xml。相比于json,xml.yaml更适合做配置使用

yaml-cpp是常用的yaml库

YAML-CPP 环境安装
1. 下载源代码

git clone https://github.com/jbeder/yaml-cpp.git

2. 编译安装

mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON …
make install

使用教程

基础用法
测试用yaml文件:test.yml

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

读取文件,输出文件

#include  //yaml-cpp 头文件
#include 

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

解决方案:

这是命令行上的排序问题.我想我永远不会理解GCC命令行逻辑.简单地将库放在最后似乎有效:

g++ -L/usr/local/lib -I/usr/local/include -std=c++0x -o $@ $^ -lyaml-cpp

结语:

时间: 2020-09-28

你可能感兴趣的:(Bug,linux,c++)