Existem bibliotecas estáticas (LIB) e dinâmicas (DLL) - mas observe que os arquivos .LIB podem ser bibliotecas estáticas (contendo arquivos de objetos) ou importar bibliotecas (contendo símbolos para permitir que o vinculador vincule a uma DLL).
Bibliotecas são usadas porque você pode ter o código que deseja usar em muitos programas. Por exemplo, se você escrever uma função que conte o número de caracteres em uma string, essa função será útil em muitos programas. Depois de conseguir que a função funcione corretamente, você não precisará recompilar o código toda vez que a usar, para colocar o código executável dessa função em uma biblioteca, e o vinculador poderá extrair e inserir o código compilado no seu programa. . Bibliotecas estáticas às vezes são chamadas de 'arquivos' por esse motivo.
As bibliotecas dinâmicas levam esse passo adiante. Parece um desperdício ter várias cópias das funções da biblioteca ocupando espaço em cada um dos programas. Por que eles não podem compartilhar uma cópia da função? É para isso que servem as bibliotecas dinâmicas. Em vez de criar o código da biblioteca no seu programa quando ele é compilado, ele pode ser executado mapeando-o no programa à medida que é carregado na memória. Vários programas em execução ao mesmo tempo que usam as mesmas funções podem compartilhar uma cópia, economizando memória. De fato, você pode carregar bibliotecas dinâmicas apenas conforme necessário, dependendo do caminho através do seu código. Não faz sentido que as rotinas da impressora ocupem memória se você não estiver imprimindo. Por outro lado, isso significa que você precisa ter uma cópia da biblioteca dinâmica instalada em todas as máquinas em que seu programa é executado.
Como exemplo, quase todos os programas escritos em 'C' precisarão de funções de uma biblioteca chamada 'biblioteca de tempo de execução C', embora poucos programas precisem de todas as funções. O tempo de execução C vem nas versões estática e dinâmica, para que você possa determinar qual versão seu programa usa, dependendo de necessidades específicas.