dalanmiller parent
How do I learn about what’s being discussed here? Why do I need a linker?
John R. Levine’s book Linkers and Loaders remains the only comprehensive coverage on the topic. You can get the manuscript proofs for free on the author’s website:
The Solaris Linkers and Libraries docs are very good and mostly relevant to Linux, with fewer distractions about Windows:
Here is a video presentation from Apple about the topic: https://developer.apple.com/videos/play/wwdc2022/110362
It has an introduction section on what is a linker and why you need one. The gist is, linker is the piece of software that puts together different source file, be it at compile time or runtime. So, the faster is your linker the quicker the app compiles and opens.
Individual compilation units (ex: .o files built from .c files) hold references (ex: from .h files) to other compilation units. In order to assemble a full executable, a linker takes all these individual units and links them together.
You may want to read this section of the README.
https://github.com/rui314/mold#why-does-the-speed-of-linking...
To assemble executable code from separately compiled files. Or to tell your executable code from where other executable code it needs can be loaded at runtime.