Ошибки компилятора yaml-cpp при попытке собрать библиотеку

Я пытаюсь скомпилировать yaml-cpp 0.5 с помощью Visual Studio Express 2012 (используя файлы проекта, сгенерированные Cmake), и я получаю некоторые ошибки от impl.h:

error C2734: 'lhs' : const object must be initialized if not extern
error C2027: use of undefined type 'YAML::convert<T>'
error C3861: 'decode': identifier not found
error C3861: 'encode': identifier not found

Все ошибки исходят от функций шаблона node_data::equals и node_data::convert_to_node

Обратите внимание, что эти ошибки исходят из файла проекта run-tests; На самом деле я могу создавать файлы lib, но не могу использовать библиотеку, так как для ее работы нужны эти функции.

Есть идеи?

РЕДАКТИРОВАТЬ: я также получаю те же ошибки при компиляции с VS 2010.


person jlanisdev    schedule 05.01.2013    source источник


Ответы (2)


Я только что сообщил об ошибке и включил исправление для этого.

Пожалуйста, проверьте http://code.google.com/p/yaml-cpp/issues/detail?id=182

person Johannes S.    schedule 10.01.2013

В VS 2010 строки имеют тип const char[], что вызывает эту ошибку компиляции. Для меня быстрое решение заключалось в том, чтобы перевести его в char*

YAML::Node config = YAML::LoadFile("Config.cfg");
int value = 0;
if (config[(char*)"value"])
    config[(char*)"value"].as<int>();

Выглядит некрасиво, но будет работать, пока не придет исправление из библиотеки.

person Yoi-Nami-Ra    schedule 25.03.2013