I am transfering an existing multi-project VS2008 solution to VS2010.
After fixing a few C++11-related issues all the projects compiled successfully, but I got lots (a hundred or so) of “unresolved external symbol” linker errors. They all were about functions from one of my projects (a library). I’ve checked project dependencies and they were ok: all the users of this library listed it as a dependency.
Before transfer, the solution was succesfully compiling and linking in VS2008.
Why did this issue occur and how to fix it?
It turned out that an option “Link library dependencies” was set to “No” (both in the original and in the converted project). Somehow in spite of this setting the library was still being linked in VS2008, and in VS2010 it wasn’t.
To fix this issue I just turned “Link library dependencies” in “Librarian->General” to “Yes”: