Using old compiled libs with newer toolset version?

  c++, visual-c++, visual-studio

I have to work on a very old C/C++ project (compiled with Visual Studio 2008) which has some static-library dependencies.

When trying to update the toolset version to compile the project using Visual Studio 2019 (v142) the compiler complains it can’t resolve the symbols of some of these old .lib dependencies (funny enough it doesn’t complain about other equally old imported libs). I already checked the "Runtime Library" compiler option and both the libs and the .exe are using /MT.

As far as I know those .libs contains a bunch of .obj files with compiled code, right? Is it possible that the compiler couldn’t resolve the symbols because of how old the libraries are compared to the actual toolset being used?

If so, what could I do to upgrade the toolset version considering I can’t recompile some of those dependencies?

If it is not possible and I’m supposed to use the old versions, where can I found the VS 2008 to download? I couldn’t find it in the Microsoft site.

EDIT
All the unresolved symbols are some functions of the std namespace. Some of them: std::_Mutex::_Lock(), std::BADOF, std::bad_cast::bad_cast(char*).

Source: Windows Questions C++

LEAVE A COMMENT