If you use the MS compiler later than version 6, you will have to reference the runtime specific to that compiler. You have no choice in this matter. Since MSVC runtime is not a system DLL, you will need to distribute them with your application.
If you use MSVC6 or a compiler that can link to msvcrt.dll, you can link it to msvcrt.dll.
The mingw compiler is quite configurable. However, I find that it is usually associated with msvcrt.dll. Since msvcrt.dll is a system DLL (with Windows 2000 IIRC), you do not need to distribute it.
I assume in all of this that you are dynamically referencing a production environment. This is the preferred option, but static can always be associated with time. When you do this, you will make your application standalone.
It all depends on which compiler you prefer to use. If you prefer to use modern MSVC, you need to accept the runtime distribution or the link statically.
source share