2012-02-07 46 views
2

我正在運行示例here來嘗試在C++中使用YAML。我將代碼逐字複製到了一個新的項目文件夾中的test.cpp中。我將YAML編譯成靜態庫並將其鏈接到我的項目。我正在運行Ubuntu 11.10。我用下面的命令編譯:yaml-cpp中的YAML怪物示例中的「非法塊條目」

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)」之前。另外,我從存儲單個標量的網站上運行了一個更簡單的例子,並且運行良好。是關於我的輸入文件或我的代碼的例外?

+0

你可以使用一個調試器來找出在示例代碼中出現這種情況? – 2012-02-07 19:50:50

+0

謝謝大衛,我編輯了主帖回答你的問題。 – Joe 2012-02-07 19:56:55

+0

你在用哪個例子? (該頁面上列出了幾個示例。) – 2012-02-07 21:33:32

回答

1

該錯誤表示輸入文件存在問題(monsters.yaml)。確保你複製了,正好是。它聲稱在第4行第2列有一個錯誤,所以你可以先看看那個位置(但yaml-cpp與錯誤位置並不是很好,所以可能不是正確的位置)。

事情,以確保有關:

  • 空格,不製表符
  • 的空間縮進適當數量
+0

非常感謝!這解決了它。 – Joe 2012-02-09 00:11:59