Я запускаю знайдений приклад тут спробувати використовувати YAML в C ++. Я скопіював код дослівно в тест.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 для цього Заздалегідь дякую за вашу допомогу.
Редагувати: помилка виникає перед "парсером".GetNextDocument (doc) ". Також я запустив простіший приклад з веб-сайту, який зберігає єдиний скаляр, і це спрацювало чудово. Чи є виняток із мого вхідного файлу чи мого коду?
Відповіді:
1 для відповіді № 1Помилка вказує на наявність проблеми з вхідним файлом (monsters.yaml
). Переконайтесь, що ви скопіювали його точно. Він стверджує, що в рядку 4, стовпчик 2 є помилка, тож ви можете спочатку подивитися на це місце (але yaml-cpp не дуже добре з розташуванням помилок, так що це може бути не правильним місцем для перегляду).
Про що слід переконатися:
- пробіли, а не вкладки
- належна кількість пробілів для відступу