Un archivo .lib es una biblioteca estática, una colección de rutinas, subrutinas, funciones u objetos precompilados que pueden ser utilizados e incorporados en un programa. A diferencia de las bibliotecas dinámicas (DLLs o .so), las bibliotecas estáticas se enlazan directamente en el archivo ejecutable durante el proceso de compilación. Esto significa que el código de la biblioteca pasa a formar parte integral del ejecutable final, haciéndolo autocontenido e independiente de dependencias de bibliotecas externas en tiempo de ejecución (runtime).
Las bibliotecas estáticas se utilizan comúnmente para encapsular módulos de código reutilizables, proporcionando una forma eficiente de organizar y compartir código entre múltiples proyectos. Cuando un programa utiliza una biblioteca estática, el enlazador (linker) copia el código necesario de la biblioteca directamente en el archivo ejecutable del programa. Si bien esto resulta en un tamaño de ejecutable mayor en comparación con el uso de bibliotecas dinámicas, elimina la necesidad de distribuir y gestionar archivos de biblioteca separados. Son particularmente útiles cuando se requiere asegurar que el programa tenga todo el código necesario incrustado, sin depender de dependencias externas que podrían faltar o ser incompatibles en diferentes sistemas. Son una parte fundamental del desarrollo de software, especialmente en lenguajes como C y C++.