When I examine the code generated by gcc -v -o proggy.exe proggy.o I find that the command line expands into a large bunch of library options and libraries, all of which are lin
GCC uses a utility called collect2 on nearly all systems to arrange to call various initialization functions at start time. [link]
collect2
is a utility used to generate a table of constructors that __main
(an auto-generated function called at the beginning of main
) depends on. Normally you don't see it because it's named ld
on the file system, and it in turn calls the real ld (typically called real-ld
, although collect2 will check a number of places looking for it)