I was reading this on SO when I actually started to wonder how the linker resolved especially adresses of symbols in an object file and how it would be organized inside the executable file outputted by the linker.
- How are variable and function references handled by the linker & compiler as well as by the program itself during run time? Is there an overhead created in the executable file (which maybe could also be manipulated)?
Please feel free to answer with the use of technical vocabulary (that I could look up) if that shortens the answer...
I'm asking with the intent to better understand how an executable file looks like (I already know that it does not consist only of machine code and data.)