2016-05-15 3 views
3

У меня есть YAML файл, состоящий из:YAML неразрешенный внешний символ (YAML-каст)

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

Смежные вопросы