I've always wondered. I know that compilers convert the code you write into binaries but what do linkers do? They've always been a mystery to me.
I roughly understand what 'linking' is. It is when references to libraries and frameworks are added to the binary. I don't understand anything beyond that. For me it "just works". I also understand the basics of dynamic linking but nothing too deep.
Could someone explain the terms?