 They are resolved into fixed or relocatable addresses (from a common base) by allocating runtime memory for the memory segments of each module referenced.Some programming languages may use a feature called "smart linking" whereby the linker is aware of or integrated with the compiler, such that the linker knows how external references are used, and code in a library that is never actually "used", even though internally referenced, can be discarded from the compiled application.For example, a program that only uses integers for arithmetic, or does no arithmetic operations at all, can exclude floating-point library routines.