Ho sentito che i miei programmi C ++ "hanno bisogno di collegarsi con la libreria / runtime C ++". Tuttavia, il runtime di C ++ è solo il compilatore che inserisce codice di operazione dello stack nell'immagine, o il codice "boilerplate" se vuoi . Il runtime di C ++ è fondamentalmente intrinseco al programma stesso, quindi "collegare il runtime" è un po 'illogico. Il collegamento di una libreria ha più senso, soprattutto perché le librerie C ++ sono oggetti indipendenti che altrimenti avrebbero bisogno di essere risolti con il programma sorgente stesso, e delocalizzazione .
Quindi mi sono chiesto, oltre alla libreria C ++, cos'altro, o come sai esattamente con cosa stai collegando? Ad esempio, se dovessi collegare alla libreria C ++, dovrei anche collegarmi con la libreria e l'API specifiche del sistema operativo, o almeno un wrapper di qualche tipo che tratterà direttamente con esso.
Quindi il linker, in effetti, collegherà il file del programma principale con la libreria C ++ con l'OS-API / libreria? Non sembra particolarmente giusto.
Fondamentalmente, il linker collegherà più librerie insieme (staticamente, in questo esempio, in fase di compilazione / link-time)?