Enlazado Estático
Una biblioteca estática se enlaza en tiempo de compilación. La ventaja es que el programa no depende de librerías externas, facilitando su distribución.
El enlazado permite dividir un programa en módulos, ensamblados y enlazados posteriormente. El enlazado estático crea un ejecutable con todos los símbolos y módulos incluidos.
Enlazado Dinámico
Un enlace dinámico enlaza una biblioteca de código durante la ejecución del programa. El programa es más ligero y evita la duplicación de código.
Las bibliotecas de enlace dinámico, o compartidas, residen en directorios del sistema operativo, permitiendo que los programas las usen. Esto puede causar problemas de dependencias entre versiones.
El enlazado dinámico permite enlazar procedimientos solo cuando son llamados, optimizando recursos.
Librerías Estáticas y Dinámicas
Una librería estática se copia en el programa durante la compilación. El ejecutable contiene la librería y funciona independientemente. Solo se copia la parte necesaria de la librería.
Una librería dinámica no se copia en el programa. El ejecutable accede a la librería durante la ejecución. Si se elimina la librería, el programa falla.
Ventajas e Inconvenientes
¿Cuáles son las ventajas e inconvenientes de cada tipo de librería?
- Un programa con librerías estáticas es más grande.
- Un programa con librerías estáticas es portable sin necesidad de las librerías.
- Un programa con librerías estáticas es, en principio, más rápido en ejecución.
- Cambios en librerías estáticas no afectan a los ejecutables, mientras que cambios en dinámicas sí.
Biblioteca de Enlace Dinámico (DLL)
Las DLL son la evolución de las bibliotecas estáticas. Contienen funcionalidad y recursos para otras aplicaciones.
- Reducen el tamaño de los ejecutables.
- Pueden ser compartidas entre aplicaciones.
- Facilitan la gestión de memoria.
- Mayor flexibilidad ante cambios.