Wenn ich den von gcc -v -o proggy.exe proggy.o generierten Code untersuche, finde ich, dass sich die Befehlszeile in eine große Menge von Bibliotheksoptionen und Bibliotheken erweitert, die alle mit collect2.exe verbunden sind. Was ist mit ld.exe passiert? Warum sehe ich das nicht? Kann mir jemand erklären, was collect2.exe macht?
collect2
ist ein Dienstprogramm, das verwendet wird, um eine Tabelle von Konstruktoren zu generieren, von der __main
(eine automatisch generierte Funktion, die am Anfang von main
aufgerufen wird) abhängt. Normalerweise sieht man es nicht, weil es im Dateisystem den Namen ld
hat, und es ruft seinerseits das echte ld auf (normalerweise real-ld
genannt, obwohl collect2 eine Anzahl von Orten überprüft, die danach suchen)
GCC verwendet ein Dienstprogramm namens collect2 auf fast allen Systemen, um verschiedene Initialisierungsfunktionen zum Startzeitpunkt aufzurufen. [link]