Uma biblioteca estática é uma coleção de rotinas pré-compiladas que são vinculadas (linked) a um programa no momento da compilação e se tornam parte integrante do arquivo executável. Diferentemente das bibliotecas dinâmicas (também conhecidas como bibliotecas compartilhadas ou 'shared libraries'), as bibliotecas estáticas não são carregadas em tempo de execução ('runtime'). Em vez disso, o código da biblioteca estática é copiado diretamente para o executável. Isso resulta em um tamanho de executável maior, mas elimina a dependência da biblioteca estar presente no sistema onde o executável é executado. Bibliotecas estáticas são comumente usadas para distribuir componentes de código reutilizáveis, como funções matemáticas, estruturas de dados ou drivers de dispositivo. Elas são particularmente úteis quando se deseja garantir que seu programa tenha todo o código necessário embutido e não dependa de dependências externas que possam estar ausentes ou serem incompatíveis em diferentes sistemas. A extensão de arquivo '.a' é a extensão mais comum para bibliotecas estáticas em sistemas do tipo Unix, incluindo Linux e macOS. No Windows, as bibliotecas estáticas tipicamente utilizam a extensão '.lib'.