Red de conocimiento informático - Conocimiento sistemático - Archivos de biblioteca fuente

Archivos de biblioteca fuente

Primero, se introducen los conceptos de bibliotecas estáticas (bibliotecas de enlaces estáticos) y bibliotecas dinámicas (bibliotecas de enlaces dinámicos). Primero, ambas son formas de disfrutar el código.

Biblioteca estática: durante el paso de vinculación, el vinculador copia el código requerido del archivo de la biblioteca al archivo ejecutable generado. Este tipo de biblioteca se denomina biblioteca estática y se caracteriza por una copia completa del código de la biblioteca contenido en el archivo ejecutable. La desventaja es que si se usa varias veces, habrá varias copias redundantes. Es decir, todas las instrucciones de la biblioteca estática se incluyen directamente en el archivo EXE final generado. Cree un nuevo proyecto en VS para generar una biblioteca estática. Después de una compilación exitosa, solo se necesita una. Se generará el archivo lib.

Biblioteca dinámica: una biblioteca de enlaces dinámicos es una biblioteca que contiene código y datos que pueden ser utilizados por múltiples programas al mismo tiempo. DLL no es un archivo ejecutable. Los enlaces dinámicos proporcionan una forma para que un proceso llame a funciones que no forman parte de su código ejecutable. El código ejecutable de una función se encuentra en una DLL, que contiene una o más funciones que se compilan, vinculan y almacenan independientemente del proceso que las utiliza. Cree un nuevo proyecto en VS para generar una biblioteca dinámica. Después de una compilación exitosa, se generarán un archivo .lib y un archivo .dll.

Entonces, ¿cuál es la diferencia entre la biblioteca estática anterior y la biblioteca dinámica?

lib en biblioteca estática: esta LIB contiene el código de la función en sí (es decir, incluido el índice y la implementación de la función), y el código se agrega directamente al programa en el momento de la compilación.

lib en biblioteca dinámica: esta LIB contiene la información (índice) del archivo DLL donde se encuentra la función y la ubicación de la función en el archivo. El código de implementación de la función lo proporciona la DLL cargada en. el espacio del proceso en tiempo de ejecución.

En resumen, use lib al compilar y dll al ejecutar. Si desea completar la compilación del código fuente, solo necesita lib; si desea ejecutar un programa vinculado dinámicamente, solo necesita una dll;