What is Dynamic linker?

Software that, when a dynamically linked program starts, finds and loads shared libraries, applies relocations and binds symbols before starting the program, such as ld.so on Linux.

Field: Linkers, Loaders & Executables

Dynamic linker in the explanations

Questions that mention Dynamic linker (10)

  1. What is the role of the dynamic linker (such as ld.so) when a dynamically linked program starts on Linux?
  2. Which describes the relocation a linker performs?
  3. What is an advantage of dynamic linking (shared libraries)?
  4. A dynamically linked program copied to another computer fails to start. What is the most likely cause?
  5. What is the role of the GOT (global offset table) used in shared libraries?
  6. When dynamic linking uses lazy binding through the PLT (procedure linkage table), which statement is correct?
  7. What does the OS loader do when a program is started (for example by execve on Linux)?
  8. Disassembling an object file shows that an instruction calling the external function printf has a placeholder target such as 0. When is the correct value filled in?
  9. When building a shared library, what is the advantage of exporting only the public functions and giving internal functions "hidden" symbol visibility?
  10. How does C++ run the constructors of global objects before main?

Related terms

Dynamic linking Linker Procedure linkage table (PLT) Relocation Shared library Entry point Static linking Global offset table Position-independent code Object file

Back to the glossary