In today’s world the applications we need to build can easily run into of thousands of lines of code. Applications with such big complexity can never be built monolithically as that will be a maintenance nightmare, prone to tight coupling and will require huge build time. Hence breaking huge applications into smaller logical modules is need of the day.
We need to break a big application into several modules, compile them separately and then link them together. This brings in the two linking techniques namely Static Linking and Dynamic Linking.