使用yaml cpp 0.5 DLL时出现链接器错误 我在Visual Studio 2010中有一个C++项目,我将代码从旧的YAML CPP 0.3 API移植到新的0.5 API。我已经设置了Boost,用CMake构建了新的dll,设置了include和library路径,更新了所有代码以匹配新的API,所有的东西都编译得很好

使用yaml cpp 0.5 DLL时出现链接器错误 我在Visual Studio 2010中有一个C++项目,我将代码从旧的YAML CPP 0.3 API移植到新的0.5 API。我已经设置了Boost,用CMake构建了新的dll,设置了include和library路径,更新了所有代码以匹配新的API,所有的东西都编译得很好,c++,windows,visual-studio-2010,yaml-cpp,C++,Windows,Visual Studio 2010,Yaml Cpp,但是,当它到达链接时,我会遇到大量链接器错误,如下所示: error LNK2001: unresolved external symbol "public: static bool __cdecl YAML::convert<bool>::decode(class YAML::Node const &,bool &)" error LNK2001: unresolved external symbol "private: void __thiscall YAML::

但是,当它到达链接时,我会遇到大量链接器错误,如下所示:

error LNK2001: unresolved external symbol "public: static bool __cdecl YAML::convert<bool>::decode(class YAML::Node const &,bool &)"
error LNK2001: unresolved external symbol "private: void __thiscall YAML::detail::node_data::insert_map_pair(class YAML::detail::node &,class YAML::detail::node &)"
error LNK2001: unresolved external symbol "public: void __thiscall YAML::detail::memory_holder::merge(class YAML::detail::memory_holder &)"
error LNK2001: unresolved external symbol "public: class YAML::detail::node & __thiscall YAML::detail::memory::create_node(void)"
error LNK2001: unresolved external symbol "public: void __thiscall YAML::detail::node_data::mark_defined(void)"
error LNK2001: unresolved external symbol "public: void __thiscall YAML::detail::node_data::set_null(void)"
...

这是一个众所周知的问题。您可以按照项目页面上的

APPLE_UNIVERSAL_BIN = false
BUILD_SHARED_LIBS = true
MSVC_SHARED_RT = true
MSVC_STHREADED_RT = false
YAML_CPP_BUILD_CONTRIB = false
YAML_CPP_BUILD_TOOLS = false