2016-05-15 151 views
3

我由一个YAML文件:YAML解析的外部符号(YAML-CPP)

abc: 123 

而且我用下面的代码加载它:

YAML::Node base = YAML::Load("test.yaml"); 
std::cout << base["abc"].as<int>() << std::endl; 

MSVC无法链接(由第二行引起),说明:

unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > YAML::detail::node_data::empty_scalar" 

我不知道我在做什么错,或者如果我只是把它设置错了。它链接和解析文件很好,只是不让我使用YAML::Node::operator[]而不给我一个错误。

+1

这不是一个编译错误。 –

+2

您是否阅读过http://stackoverflow.com/q/36403287/212870? –

回答

0

你必须使用yaml-cpp的库链接。

+0

我确实链接过图书馆。就像我说的那样,它会解析文件文件(如果我没有链接库,我会认为它不起作用),但是在解析文件后,我只是无法访问文件中的数据。 – Thoom1940

+0

@Thoom也许你应该显示可以工作的代码。 –

+0

@AlanStokes如果我删除第二行它的作品。我还可以捕获抛出的'YAML :: ParserException'来从无效的YAML文件中获取错误消息。只有当我从我加载的文件(通过'operator []')访问数据时,我的代码才能工作。可能还有其他功能,但我对图书馆知之甚少。 – Thoom1940