Dynamic linking (also called load time linking) postpone the linking of libraries to run-time and then again as needed. In Linux, the gcc program is a driver that invokes compilers, assemblers and finally a linker as appropriate based on the contents of the files given as arguments.