尝试构建库时yaml-cpp编译器错误

时间:2013-01-05 21:19:41

标签: yaml-cpp

我尝试使用Visual Studio Express 2012(使用Cmake生成的项目文件)编译yaml-cpp 0.5,并且我从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::equalsnode_data::convert_to_node

请注意,这些错误来自run-tests项目文件;我实际上能够构建lib文件,但不能使用该库,因为它需要这些功能才能工作。

有什么想法吗?

编辑:在使用VS 2010进行编译时,我也会遇到相同的错误。

2 个答案:

答案 0 :(得分:0)

我刚报道了一个isse并包含了一个修复程序。

请检查http://code.google.com/p/yaml-cpp/issues/detail?id=182

答案 1 :(得分:0)

在VS 2010中,字符串的类型为const char[],导致此编译错误。 对我来说,快速解决方法是将其转换为char*

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

看起来不太好但是会在图书馆的修复工作到来之前一直工作。