我是yaml-cpp的新手,我尝试了最简单的程序,但失败了,也没有找到作者的google/github网站的答案.
#include <iostream>
#include "yaml-cpp/yaml.h"
using namespace std;
int main()
{
YAML::Node config = YAML::LoadFile("sample.yaml");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
来自YAML官方网站的sample.yaml样本
--- !clarkevans.com/^invoice
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
错误消息如下:
libc ++ abi.dylib:以YAML :: BadFile类型的未捕获异常终止:yaml-cpp:第0行错误,第0列:错误文件
我可以知道这是什么问题吗?它是库构建问题还是YAML语法问题或API使用问题?
发展环境
MacOSX10.9 c++11 IDE:QtCreator3.0.1 yaml-cpp 0.5.1
[解决]
我做了愚蠢的错误,我加载了错误的路径sample.yaml.
我认为您使用的yaml-cpp版本中的YAML解析器不够先进,无法处理示例文件的第一行.示例文件试图说明一些更高级的YAML功能.您的解析器似乎无法处理它们.我建议你从一个更简单的示例文件开始.
我使用三个在线验证器检查了您的文件,结果如下:
毫无疑问,该文件是有效的YAML,但这并不意味着所有现存的解析器都可以解析它!