我是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;
}
来自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
路径。
答案 0 :(得分:7)
我认为您使用的yaml-cpp版本中的YAML解析器不够先进,无法处理示例文件的第一行。示例文件试图说明一些更高级的YAML功能。您的解析器似乎无法处理它们。我建议你从一个更简单的示例文件开始。
我使用三个在线验证器检查了您的文件,结果如下:
毫无疑问,该文件是有效的YAML,但这并不意味着所有现存的解析器都可以解析它!
答案 1 :(得分:2)
看来yaml-cpp无法找到您的文件。你能加载任何文件吗?确保该文件位于程序的工作目录中,为了理智,请确保您可以先加载一个非常简单的文件。
答案 2 :(得分:0)
根据给定的路径,您的yaml文件必须位于您的最终状态。