"Illegal block entry" YAML -cpp 中的 YAML 怪物示例

"Illegal block entry" with YAML monsters example in yaml-cpp

本文关键字:YAML 怪物 中的 -cpp entry Illegal block      更新时间:2023-10-16

我正在运行这里的示例,尝试在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对错误的位置不太好,所以这可能不是合适的位置)。

需要确保的事项:

  • 空格,而不是制表符
  • 缩进的适当空格数