In static linking there are less chances to error and No chances to failure.Linking is implemented before execution in static linking.It is implemented during compilation of source program.Linking stored the program in virtual memory to save RAM,So we have need to shared library.In dynamic linking there are many chances of error and failure chances.In a compiler, the source code is translated to object code successfully if it is free of errors. Linker is of two types: 1.Dynamic Linker:- Compiler The language processor that reads the complete source program written in high-level language as a whole in one go and translates it into an equivalent program in machine language is called a Compiler. Compile time is when high level language is turns to machine code and load time is when the code is loaded into the memory by loader. Linker is a program that holds one or more object files which is created by compiler, combines them into one executable file.Linking is implemented at both time,load time and compile time. For a code to run we need to include a header file or a file saved from the library which are pre-defined if they are not included in the beginning of the program then after execution the compiler will generate errors, and the code will not work.