2016-05-15 67 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