我正在运行发现的示例 here尝试在 C++ 中使用 YAML。我将代码逐字复制到新项目文件夹中的 test.cpp 中。我将 YAML 编译成静态库并将其链接到我的项目。我运行的是 Ubuntu 11.10。我使用以下命令进行编译:
g++ -Wall -I. -g test.cpp -lyaml-cpp -L.
我收到以下错误声明:
terminate called after throwing an instance of 'YAML::ParserException'
what(): yaml-cpp: error at line 4, column 2: illegal block entry
Aborted
这个异常是什么意思?可能出了什么问题?我找不到明确的文档来说明每个异常的含义,因此即使是此信息的链接也会有所帮助。我可能超出了我的能力范围,因为我对 YAML、使用库和 Linux 都是新手。预先感谢您的帮助。
编辑:错误发生在“parser.GetNextDocument(doc)”之前。另外,我从存储单个标量的网站上运行了一个更简单的示例,效果很好。异常是关于我的输入文件还是我的代码?
最佳答案
该错误表明输入文件 (monsters.yaml
) 存在问题。确保您准确地复制了它。它声称第 4 行第 2 列有错误,因此您可以先查看该位置(但 yaml-cpp 不太适合错误位置,因此这可能不是查看的正确位置)。
需要确定的事情:
- 空格,而不是制表符
- 适当的缩进空格数
关于c++ - "Illegal block entry"以及 yaml-cpp 中的 YAML 怪物示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182664/