Enlace del sistema operativo

Sistema de construcción

El siguiente es un programa hello.c:

 #include <stdio.h> 
 int main () 
 { 
     printf ( "hola, mundo \ n"); 
     return 0; 
 }

En los sistemas Unix, el compilador convierte los archivos fuente en archivos objeto.

 gcc -o hola hola.c

El proceso es aproximadamente el siguiente:

 

  • Etapa de preprocesamiento: procesamiento de comandos de preprocesamiento que comienzan con #;

  • Etapa de compilación: traducir a archivos de ensamblaje;

  • Etapa de ensamblaje: traducción del archivo de ensamblaje a un archivo de objeto reubicable;

  • Etapa de vinculación: combine el archivo de objeto reubicable y los archivos de objeto precompilados por separado, como printf.o, para obtener el archivo de objeto ejecutable final.

Enlace estático

El enlazador estático toma un conjunto de archivos de objeto reubicables como entrada y genera un archivo de objeto ejecutable completamente enlazado como salida. El vinculador completa principalmente las dos tareas siguientes:

  • Resolución de símbolo: Cada símbolo corresponde a una función, una variable global o una variable estática El propósito de la resolución de símbolo es asociar cada referencia de símbolo con una definición de símbolo.

  • Reubicación: el enlazador asocia cada definición de símbolo con una ubicación de memoria y luego modifica todas las referencias a estos símbolos para que apunten a esta ubicación de memoria.

Supongo que te gusta

Origin blog.csdn.net/luolan_hust/article/details/113667598
Recomendado
Clasificación