In the previous example, the compiler automatically generates the loader object files (file1.o, file2.o, and file3.o) and then invokes the system linker to create the executable program for the file prgrm.
After compilation, the object files (file1.o, file2.o,and file3.o) remain. This convention enables you to easily relink and recompile your files.
If the compilation fails, you will receive a message for each error. No .o files are generated for those source files with errors, and no executable program is written.