Cuál es la diferencia entre el archivo de objeto y el archivo ejecutable

los diferencia principal entre el archivo objeto y el archivo ejecutable es que un archivo de objeto es un archivo generado después de compilar el código fuente, mientras que un archivo ejecutable es un archivo generado después de vincular un conjunto de archivos de objetos usando un enlazador.  

C es un lenguaje de programación de alto nivel de propósito general. Además, es un lenguaje de programación estructurado que ayuda a escribir programas eficientes. Los sistemas operativos, compiladores de lenguaje, editores de texto, controladores de red, bases de datos son algunas aplicaciones del lenguaje de programación C. El archivo de objeto y el archivo ejecutable son dos archivos relacionados con la programación en C.

Áreas clave cubiertas

1. ¿Qué es el archivo de objeto
     - Definición, Funcionalidad
2. Que es el archivo ejecutable
     - Definición, Funcionalidad
3. ¿Qué es la relación entre el archivo de objeto y el archivo ejecutable?
     - Esquema de asociación
4. Cuál es la diferencia entre el archivo de objeto y el archivo ejecutable
     - Comparación de diferencias clave

Términos clave

Lenguaje C, archivo ejecutable, archivo objeto

¿Qué es el archivo de objeto

En primer lugar, el programa C es un conjunto de instrucciones escritas en lenguaje de programación C para realizar una tarea específica. Este programa se llama el código fuente. El programador puede leer y entender el código fuente, pero la CPU no lo entiende. Por lo tanto, es necesario convertir el código fuente en un formato comprensible para la máquina. Un código de objeto se genera después de compilar el código fuente.

Figura 1: Código fuente

El archivo de objeto es otro nombre para el código de objeto. El archivo objeto tiene la extensión .obj en el entorno de Windows. Además, el archivo objeto tiene el. o extensión de archivo en entorno Linux. Sin embargo, la CPU no puede ejecutar directamente el archivo objeto.

Que es el archivo ejecutable

Después de escribir el programa C, si hay errores de sintaxis, el programador debe editarlos. Sin embargo, si no hay errores de sintaxis, el compilador convierte el código fuente en un archivo objeto. Entonces el enlazador realiza el proceso de vinculación. Toma uno o más archivos de objetos generados por el compilador y los combina en un solo archivo ejecutable. Además, enlaza los otros archivos de programa y las funciones que el programa requiere. Por ejemplo, si el programa tiene la función "exp ()", el enlazador vincula el programa con la biblioteca matemática del sistema..

Figura 2: Creando un archivo ejecutable

El programador no entiende las instrucciones en el archivo ejecutable, pero la CPU puede leer y entender esas instrucciones. Por lo tanto, la CPU ejecuta directamente el archivo ejecutable para realizar las tareas definidas en el programa..

Relación entre el archivo de objeto y el archivo ejecutable

  • Los archivos de objetos se combinan para crear un archivo ejecutable.

Diferencia entre el archivo de objeto y el archivo ejecutable

Definición

Un archivo de objeto es un archivo que contiene un código de objeto que tiene un código de máquina de formato reubicable que no es ejecutable directamente. Un archivo ejecutable es un archivo que puede ser ejecutado directamente por la computadora y es capaz de realizar las tareas indicadas de acuerdo con las instrucciones codificadas. Por lo tanto, esto explica la principal diferencia entre el archivo objeto y el archivo ejecutable..

Tipo

Otra diferencia entre el archivo de objeto y el archivo ejecutable es que un archivo de objeto es un archivo intermedio, pero un archivo ejecutable es un archivo final.

Funcionalidad

Además, el compilador convierte el código fuente en un archivo objeto. Sin embargo, el vinculador vincula los archivos de objetos con la biblioteca del sistema y combina los archivos de objetos para crear un archivo ejecutable.

Ejecución directa por CPU

Además, la CPU no puede ejecutar directamente el archivo objeto mientras que la CPU puede ejecutar directamente un archivo ejecutable. Por lo tanto, esta es una gran diferencia entre el archivo objeto y el archivo ejecutable.

Conclusión

En conclusión, el archivo de objeto y el archivo ejecutable son dos archivos relacionados con la programación en C. La principal diferencia entre el archivo de objeto y el archivo ejecutable es que un archivo de objeto es un archivo que se genera después de compilar el código fuente, mientras que un archivo ejecutable es un archivo que se genera después de vincular un conjunto de archivos de objetos usando un enlazador. 

Referencia:

1. "Linker (Informática)". Wikipedia, Fundación Wikimedia, 6 de octubre de 2018, disponible aquí..

Imagen de cortesía:

1. "Código fuente en C" Por Romainhk - Trabajo propio (imagen y código) (CC BY-SA 3.0) a través de Commons Wikimedia
2. “Pasos de construcción del lenguaje C” (CC BY-SA 3.0) a través de Commons Wikimedia