
[Edward Diener]
In Visual Studio, easily the most popular Windows IDE, the VC++ modules all link by default to the DLL version of libraries ( RTL, MFC, ATL etc. etc. ). Of course you can change this but the default is DLLs, not static libs.
Amusingly, static linking is the default in a relatively trivial way - if you invoke the compiler from the command line and don't specifically select one of the four flavors, you get static release: C:\Temp>type meow.cpp #include <stdio.h> int main() { #ifdef _DLL printf("Dynamic "); #else printf("Static "); #endif #ifdef _DEBUG puts("Debug"); #else puts("Release"); #endif } C:\Temp>cl /EHsc /nologo /W4 /MT meow.cpp && meow meow.cpp Static Release C:\Temp>cl /EHsc /nologo /W4 /MTd meow.cpp && meow meow.cpp Static Debug C:\Temp>cl /EHsc /nologo /W4 /MD meow.cpp && meow meow.cpp Dynamic Release C:\Temp>cl /EHsc /nologo /W4 /MDd meow.cpp && meow meow.cpp Dynamic Debug C:\Temp>cl /EHsc /nologo /W4 meow.cpp && meow meow.cpp Static Release This is unrelated to the question of whether Boost libs should link statically or dynamically by default (as I recall, Boost.Regex defaults to static, but I haven't checked recently). Stephan T. Lavavej Visual C++ Libraries Developer