YAML-CPP 未解析的外部符号错误
yaml-cpp unresolved external symbol error
我正在尝试在Visual Studio 2017中构建解决方案。我收到这些错误:
1>------ Build started: Project: UA_Parser, Configuration: Release x64 ------
1>UaParserTest.cpp
1>UaParser.obj : error LNK2001: unresolved external symbol "class YAML::Node __cdecl YAML::LoadFile(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?LoadFile@YAML@@YA?AVNode@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::InvalidNode::~InvalidNode(void)" (??1InvalidNode@YAML@@UEAA@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::Exception::~Exception(void)" (??1Exception@YAML@@UEAA@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::RepresentationException::~RepresentationException(void)" (??1RepresentationException@YAML@@UEAA@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::BadConversion::~BadConversion(void)" (??1BadConversion@YAML@@UEAA@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::BadSubscript::~BadSubscript(void)" (??1BadSubscript@YAML@@UEAA@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: class YAML::detail::node & __cdecl YAML::detail::memory::create_node(void)" (?create_node@memory@detail@YAML@@QEAAAEAVnode@23@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "private: void __cdecl YAML::detail::node_data::convert_to_map(class std::shared_ptr<class YAML::detail::memory_holder>)" (?convert_to_map@node_data@detail@YAML@@AEAAXV?$shared_ptr@Vmemory_holder@detail@YAML@@@std@@@Z)
1>UaParser.obj : error LNK2001: unresolved external symbol "private: void __cdecl YAML::detail::node_data::insert_map_pair(class YAML::detail::node &,class YAML::detail::node &)" (?insert_map_pair@node_data@detail@YAML@@AEAAXAEAVnode@23@0@Z)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: class YAML::detail::node_iterator_base<class YAML::detail::node> __cdecl YAML::detail::node_data::end(void)" (?end@node_data@detail@YAML@@QEAA?AV?$node_iterator_base@Vnode@detail@YAML@@@23@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: class YAML::detail::node_iterator_base<class YAML::detail::node> __cdecl YAML::detail::node_data::begin(void)" (?begin@node_data@detail@YAML@@QEAA?AV?$node_iterator_base@Vnode@detail@YAML@@@23@XZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: void __cdecl YAML::detail::node_data::set_scalar(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?set_scalar@node_data@detail@YAML@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: void __cdecl YAML::detail::node_data::set_null(void)" (?set_null@node_data@detail@YAML@@QEAAXXZ)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: void __cdecl YAML::detail::node_data::mark_defined(void)" (?mark_defined@node_data@detail@YAML@@QEAAXXZ)
1>UaParser.obj : error LNK2001: 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" (?empty_scalar@node_data@detail@YAML@@2V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@A)
1>UaParser.obj : error LNK2001: unresolved external symbol "public: void __cdecl YAML::detail::memory_holder::merge(class YAML::detail::memory_holder &)" (?merge@memory_holder@detail@YAML@@QEAAXAEAV123@@Z)
1>C:bmetricC++ ProjectsUA_Parserx64ReleaseUA_Parser.exe : fatal error LNK1120: 16 unresolved externals
1>Done building project "UA_Parser.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我有一种感觉,它们可以通过链接来解决,但我不确定要链接什么(精确的文件夹(。
到目前为止,我已经按照github上的描述构建了yaml-cpp。另外,我已经在Configuration Properties >> C/C++ >> General
的Additional Include Directories
中添加了..yaml-cppinclude
文件夹,并尝试在Additional Library Directories
(链接器(中包含各种文件夹,但没有成功。
以前从未使用过 YAML。而且我不经常链接东西。
我得到了未解决的外部符号错误,因为我包括了#include <yaml-cpp/node/node.h>
,这是Resharper推荐我的(而且99.9%的时间都是正确的(。在这种情况下,这是一个错误的标题,我应该包括的是:#include <yaml-cpp/yaml.h>
。
我修复了文件中的包含,并成功构建。
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 类模板上一个特定函数的未解析外部符号
- LNK2001:未解析的外部符号public:static类std::vector