title: Linking different versions of DLL vs different versions of static lib (Versions meaning Release vs Debug)
body: <p>This is something I have been wondering for quite a while and I do not seem to be able to find a suitable answer on the web.</p>
  <p>I am working on a project that has a number of dependencies. Most of the dependencies are static libraries that I had to compile myself.
  I am aware that you shouldn't link different lib versions (release VS debug) to different project versions (again release vs debug) or it might not link or cause undefined behavior within the application.
  So naturally I had to compile two versions for each static library (release version and a debug version).</p>
  <p>However I noticed that when I used a library (Postgresql 12 driver) that uses DLLs instead of static libs (And was also precompiled), there was no need to have two versions (debug version is not even provided) and it successfully linked to the project and worked without any problems.</p>
  <p>Could anyone give me a detailed explanation behind the behavior I am observing?</p>