Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Este proceso y el archivo ejecutable se conocen como compilación estática de la aplicación de destino. En este caso, la biblioteca simplemente actúa como un contenedor para archivos de código objeto que no difieren (excepto semánticamente) de los archivos objeto intermedios producidos durante la etapa previa de compilación del programa. Las bibliotecas dinámicas, vinculadas dinámicamente o de vínculo dinámico son archivos que contienen código objeto construido independientemente de su ubicación. Históricamente, las bibliotecas sólo podían ser estáticas. Una biblioteca estática, también conocida como archivo, es un archivo contenedor con varios archivos de código objeto empaquetados, que en el proceso de vinculación durante la compilación se copiarán y reubicarán (si es necesario) en el archivo ejecutable final, junto con el resto del archivo. archivos fuente código objeto. Bibliotecas dinámicas Bibliotecas estáticas Por otro lado, cuando la aplicación en ejecución requiere acceso a las rutinas almacenadas en una biblioteca dinámica y ejecuta la función sketch, el cargador de enlace dinámico podrá reemplazar esta llamada con la función real de la biblioteca dinámica, cargándola en la memoria si ya no lo era, y mapeando las páginas de eso en el espacio de memoria del proceso del programa. En la construcción estática de archivos compilados, las direcciones de las subrutinas ensambladas se resuelven en tiempo de compilación (más específicamente, en la fase de vinculación), de modo que las referencias a subrutinas en la biblioteca se resuelven estáticamente, de la misma manera que las referencias a subrutinas en la biblioteca. biblioteca Referencias a cualquier otra función del programa. Así, la dirección real, las referencias a saltos y otras llamadas a rutinas se almacenan en una dirección relativa o simbólica. Por lo tanto, deben estar disponibles como archivos independientes del programa. La mayoría de los sistemas operativos modernos proporcionan bibliotecas que implementan servicios del sistema. De esta forma, estos servicios se han convertido en una "materia prima" que cualquier aplicación moderna espera que le proporcione el sistema operativo. Como tal, la mayor parte del código utilizado por las aplicaciones modernas se proporciona en estas bibliotecas. ejecutable (normalmente en los directorios del sistema). En el proceso de vinculación (en tiempo de compilación), se genera un archivo ejecutable con notas de qué bibliotecas dinámicas se necesitan (pero no dónde encontrarlas) y funciones de "sketch" que se encargan de delegar la llamada a la función del cargador dinámico. que están preparados para ser solicitados y cargados en tiempo de ejecución por cualquier programa, en lugar de tener que estar previamente vinculados en tiempo de compilación. Las bibliotecas se pueden vincular a un programa (u otra biblioteca) en diferentes puntos de desarrollo o ejecución, dependiendo del tipo de vínculo que se quiera establecer, como se detalla en la sección "Tipos". Machine Translated by Google Machine Translated by Google
Compartir