I have heard that my C++ programs "need to link with the C++ library/runtime". However, the C++ runtime is just the compiler inserting stack operation code in to the image, or "boilerplate" code if you will. The C++ runtime is basically intrinsic to the program itself, so "linking the runtime" is a bit illogical. Linking a library makes more sense, especially since the C++ libraries are independent objects which would otherwise need resolvement with the source program itself, and relocation.
So I wondered, besides the C++ library, what else, or how do you know what you are linking with exactly? For example, if I'm supposedly linking with the C++ library, I also need to link with the OS-specific library and API as well, or at least a wrapper of some sort that will deal directly with it.
So the linker will, in effect, link the main program file with the C++ library with the OS-API/library? That doesn't sound particularly right.
Basically, the linker will link multiple libraries together(statically, in this example, at compile/link-time)?