The Free On-line Dictionary of Computing (30 December 2018):
Dynamically Linked Library
dynamic link library
    (DLL) A library which is linked to application
   programs when they are loaded or run rather than as the final
   phase of compilation.  This means that the same block of
   library code can be shared between several tasks rather than
   each task containing copies of the routines it uses.  The
   executable is compiled with a library of "stubs" which allow
   link errors to be detected at compile-time.  Then, at run
   time, either the system loader or the task's entry code
   must arrange for library calls to be patched with the
   addresses of the real shared library routines, possibly via a
   jump table.
   The alternative is to make library calls part of the
   operating system kernel and enter them via some kind of
   trap instruction.  This is generally less efficient than an
   ordinary subroutine call.
   It is important to ensure that the version of a dynamically
   linked library is compatible with what the executable expects.
   Examples of operating systems using dynamic linking are
   SunOS (.so - shared object files), Microsoft Windows
   (.dll) and RISC OS on the Acorn Archimedes (relocatable
   modules).
   (1995-12-12)