5 ms·
How do I learn about what’s being discussed here? Why do I need a linker?
by dalanmiller 4y ago
How do I learn about what’s being discussed here? Why do I need a linker?
- rui314 4y agoYou may want to read this section of the README. https://github.com/rui314/mold#why-does-the-speed-of-linking-matter https://github.com/rui314/mold#why-does-the-speed-of-linking...
- mrtksn 4y agoHere is a video presentation from Apple about the topic: https://developer.apple.com/videos/play/wwdc2022/110362 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.
- gspr 4y agoTo 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.
- fmajid 4y agoJohn 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: https://www.iecc.com/linker/ https://www.iecc.com/linker/ The Solaris Linkers and Libraries docs are very good and mostly relevant to Linux, with fewer distractions about Windows: https://docs.oracle.com/cd/E37838_01/html/E36783/index.html https://docs.oracle.com/cd/E37838_01/html/E36783/index.html
- deleted 4y ago[deleted]
- hoten 4y agoIndividual 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.