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 linked using collect2.exe. What happened to ld.exe? Why don't I see that? Can someone explain to me what collect2.exe does?
collect2 is a utility to arrange calling of initialisation functions at start time. It links the program and looks for these functions, creating a table of them in a temporary . c file, and then links the program a second time but including the new file. ld is called from collect2 at the end of this process.
The collect2 error is easily fixed by shutting down a program that is running in the background. Web developers usually face this problem once working with Dev C++ and other files.
The ld returned 1 exit status error is the consequence of your previous errors as in your example there is an earlier error - undefined reference to 'clrscr' - and this is the real one. The exit status error just signals that the linking step in the build process encountered some errors.
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)
GCC uses a utility called collect2 on nearly all systems to arrange to call various initialization functions at start time. [link]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With