Dynamic Linking
- The process of compiling a Binary that makes specific reference to Library functions it expects on the host system
- Stands in contrast to Static Linking
Advantages
- Leads to (typically) smaller binaries as you aren’t incorporating external code
- Can take advantage of library upgrades that patch functionality (see also: Disadvantages)
Disadvantages
- Requires the specific library to be installed on the host system
- Typically also requires a specific major version to be installed - i.e. the API between version 2.x and version 3.x of a library may not be compatible, so a program compiled for v2.x would not work if v3.x is installed
- May make your binary less portable