











Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Aprenderá sobre la creación de librerías estáticas y dinámicas en Linux Ubuntu
Tipo: Diapositivas
1 / 19
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!












■ Resolución de Símbolos
Reglas del Linker:
Linking Estático Mecanismo para “empacar” archivos objeto re-ubicables en un solo ejecutable. ¿Mecanismos?
■ Para crear librería .a desde varios .c: **gcc – c .c ar rcs nombre.a .o Para hacer linking con dicha librería: **gcc .o .a – o nombre
Ejecutando archivo objeto reubicables
Para ejecutarlos: ./programa El programa se empieza a ejecutar gracias al loader Loader: Copia el código y datos del archivo objeto ejecutable a la memoria, y salta al entry point (la primera instrucción).
■ Cuando loader se ejecuta:
Linking dinámico Liberías compartidas pueden ser cargadas al momento de ejecutar el programa en cualquier dirección de memoria, y enlazada con un programa en memoria.
Se comparten de dos maneras:
*int dlclose (void handle); → Desacarga la librería *int dlclose (void handle); → Nos devuelve errores generados por dlsym o dlopen **void *dlsym(void handle, char symbol); → Nos devuelve la dirección del simbolo symbol.