0

I am trying to reuse a player module of ONVIF Device Manager. The player is built from four projects (live555, odm.player.lib, odm.player.media, odm.player.host, odm.player.net, odm.player.host). It was built successfully in Visual Studio 2012 & 2013. When I try to build odm.player.host project on VS 2015. It occurs many errors which belong to a class of "unresolved external symbol".

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

There have many answers for the unresolved external symbol problems such as Unresolved External symbol or What is an undefined reference/unresolved. I first try to follow those answer but I could not solve my problem. Then, I found another one which addressed "a number of breaking changes in VS2015" in Visual C++ change history 2003 - 2015.

Again, I tried to follow their answer but still, I could not solve the building problem.

Does anyone have any suggestion?

John Pekl
  • 75
  • 7

1 Answers1

0

To solve the LNK2020 error, go to Project Properties > C/C++ > Code Generation and change the Debug configuration's Runtime Library setting from Multi-Threaded (/MT) or Multi-Threaded DLL (/MD) to Multi-Threaded Debug (/MTd) or Multi-Threaded Debug DLL (/MDd).

I don't know why VS2015 doesn't choose the Debug settings for the Debug configuration by default, but there you have it.

snips-n-snails
  • 637
  • 5
  • 22