从Visual C ++ 2012、2013迁移到VSC ++ 2015未解析的标记,符号

时间:2019-03-11 13:05:19

标签: visual-c++ visual-studio-2015 visual-studio-2013 onvif

我正在尝试重用ONVIF Device Manager的播放器模块。该播放器由四个项目( live555,odm.player.lib,odm.player.media,odm.player.host,odm.player.net,odm.player.host < / strong>)。它是在Visual Studio 2012和2013中成功构建的。当我尝试在VS 2015上构建 odm.player.host 项目时,会发生许多错误,这些错误属于“未解决的外部符号”类。 / p>

LNK2019 unresolved external symbol "extern "C" void * __cdecl memcpy
LNK1120 105 unresolved externals    odm.player.net  
LNK2020 unresolved token (0A00054F) "extern "C" int __cdecl _CrtDbgReportW(
LNK2001 unresolved external symbol __imp____stdio_common_vfprintf   odm.player.net  
LNK2028 unresolved token (0A000591) "extern "C" void __cdecl __CxxUnregisterExceptionObject

对于诸如Unresolved External symbolWhat is an undefined reference/unresolved之类的未解决的外部符号问题,有许多答案。我首先尝试遵循这些答案,但无法解决我的问题。然后,我发现another oneVisual C++ change history 2003 - 2015中解决了“ VS2015中的一些重大更改”。

再次,我尝试遵循他们的回答,但仍然无法解决建筑问题。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

要解决 LNK2020 错误,请转到项目 Properties > C/C++ > Code Generation 并将 Debug 配置的 Runtime Library 设置从 Multi-Threaded (/MT)Multi-Threaded DLL (/MD)Multi-Threaded Debug (/MTd)Multi-Threaded Debug DLL (/MDd)

我不知道为什么 VS2015 默认情况下不为 Debug 配置选择 Debug 设置,但您已经知道了。