Question: I have built Boost in Release configuration and have staged it into one folder.
Now when I add Boost libraries into project and try to build it in Debug configuration - linker fails because there are no Debug versions libraries.

Is there a way to make MSVC 9.0 use Release version of libraries when building Debug configuration?

Of course, there is an easy soultion - build Debug version of Boost. But I am just curious.

Answer: 
You can do two things:

* Build the debug version for boost (this is the best option).
* Add debugging symbols to your release build.

You can't use the release version of boost with your debug build because boost depends on the CRT, which is different in debug/release builds.
I've just ran into this as well, and I have something to add:

I think the answer lies in boost\config\auto\_link.hpp. It looks like including this file (which probably happens for all .lib / .dll, non-header-only, libraries) makes the generated .obj refer the debug version of the library.

Defining BOOST\_ALL\_NO\_LIB will allow the linking to succeed, having the debug version of the program linked against the release version of the library. However, when actually trying to use Boost serialization linked like this I got an "Access violation reading location 0xabababeb", meaning that some pointer was left uninitialized. Perhaps this can be fixed by compiling something else in release mode, but it's probably better to just use Boost debug.