What is the difference between COFF (Common Object File Format) and ELF (Extendable and Linkable Format), other than they being for distinct platforms??
If I have C Compiler, the Object files that my Linker in the toolchain will receive is of COFF type, on Windows. If its linux, it will be ELF.
What is the thing that makes them two different things? Firstly I thought about the Executable file it(Linker) will generate depending upon the type of Object file it received. Is it so?
What is the thing that makes it two different things?
It's the same difference as that between an XML
file and a GIF
file -- they have completely different rules about their internal structure. The former must start with <?xml version=...
, the latter with a string GIF87a
or GIF89a
.