c++ - "Illegal block entry"以及 yaml-cpp 中的 YAML 怪物示例

标签 c++ static-libraries yaml yaml-cpp

我正在运行发现的示例 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/

相关文章:

Opencv 静态构建、jpeg、png、tiff 不是静态链接的?

c++ - Vector 类(数组)上的迭代器

ruby - 为什么 YAML 将 '0777' 解释为 511?

azure-devops - Azure DevOps 管道 'view changes' 显示错误数量的更改

c++ - 有什么方法可以转储 g++ 编译程序的类布局

c++ - 类问题中的静态 int 数组

c++ - "Invalid template argument"错误在 Visual Studio 但不是 GCC

C++代码浏览

swift - Xcode 错误 : Missing required module 'Firebase'

perl - 在 perl 中解析 yaml --> 代码 : YAML_LOAD_ERR_BAD_MAP_ELEMENT