Qual è la differenza tra il file dell'oggetto e il file eseguibile

Il differenza principale tra file oggetto e file eseguibile è quello un file oggetto è un file generato dopo aver compilato il codice sorgente mentre un file eseguibile è un file generato dopo aver collegato insieme un insieme di file oggetto usando un linker.  

C è un linguaggio di programmazione generale e di alto livello. Inoltre, è un linguaggio di programmazione strutturato che aiuta a scrivere programmi efficienti. Sistemi operativi, compilatori di lingue, editor di testo, driver di rete, database sono alcune applicazioni del linguaggio di programmazione C. Oggetto File ed eseguibile sono due file relativi alla programmazione C.

Aree chiave coperte

1. Cos'è il file oggetto
     - Definizione, Funzionalità
2. Cos'è il file eseguibile
     - Definizione, Funzionalità
3. Qual è la relazione tra il file dell'oggetto e il file eseguibile
     - Schema dell'associazione
4. Qual è la differenza tra il file dell'oggetto e il file eseguibile
     - Confronto tra le principali differenze

Parole chiave

C Lingua, file eseguibile, file oggetto

Cos'è il file oggetto

Prima di tutto, il programma C è un insieme di istruzioni scritte in linguaggio di programmazione C per eseguire un compito specifico. Questo programma è chiamato il codice sorgente. Il programmatore può leggere e capire il codice sorgente, ma la CPU non lo capisce. Pertanto, è necessario convertire il codice sorgente in un formato comprensibile dalla macchina. Un codice oggetto viene generato dopo aver compilato il codice sorgente.

Figura 1: codice sorgente

Il file oggetto è un altro nome per il codice oggetto. Il file oggetto ha l'estensione .obj in ambiente Windows. Inoltre, il file oggetto ha il. o estensione del file in ambiente Linux. Tuttavia, la CPU non può eseguire direttamente il file oggetto.

Cos'è il file eseguibile

Dopo aver scritto il programma C, se ci sono errori di sintassi, il programmatore dovrebbe modificarli. Tuttavia, se non ci sono errori di sintassi, il compilatore converte il codice sorgente in un file oggetto. Quindi il linker esegue il processo di collegamento. Prende uno o più file oggetto generati dal compilatore e li combina in un unico file eseguibile. Inoltre, collega gli altri file di programma e le funzioni richieste dal programma. Ad esempio, se il programma ha la funzione "exp ()", il Linker collega il programma con la libreria matematica del sistema.

Figura 2: creazione di un file eseguibile

Il programmatore non capisce le istruzioni nel file eseguibile, ma la CPU può leggere e comprendere tali istruzioni. Pertanto, la CPU esegue direttamente il file eseguibile per eseguire le attività definite nel programma.

Relazione tra file oggetto e file eseguibile

  • I file oggetto si combinano insieme per creare un file eseguibile.

Differenza tra file oggetto e file eseguibile

Definizione

Un file oggetto è un file che contiene un codice oggetto che ha un codice macchina formato rilocabile che non è direttamente eseguibile. Un file eseguibile è un file che può essere eseguito direttamente dal computer ed è in grado di eseguire le attività indicate in base alle istruzioni codificate. Quindi, questo spiega la differenza principale tra il file oggetto e il file eseguibile.

genere

Un'altra differenza tra il file oggetto e il file eseguibile è che un file oggetto è un file intermedio, ma un file eseguibile è un file finale.

Funzionalità

Inoltre, il compilatore converte il codice sorgente in un file oggetto. Tuttavia, il linker collega i file oggetto alla libreria di sistema e combina insieme i file oggetto per creare un file eseguibile.

Esecuzione diretta tramite CPU

Inoltre, la CPU non può eseguire direttamente il file oggetto mentre la CPU può eseguire direttamente un file eseguibile. Quindi, questa è una grande differenza tra il file oggetto e il file eseguibile.

Conclusione

In conclusione, Object File ed Executable File sono due file relativi alla programmazione in C. La principale differenza tra il file oggetto e il file eseguibile è che un file oggetto è un file generato dopo aver compilato il codice sorgente mentre un file eseguibile è un file generato dopo aver collegato insieme un insieme di file oggetto utilizzando un linker. 

Riferimento:

1. "Linker (Computing)." Wikipedia, Wikimedia Foundation, 6 ottobre 2018, disponibile qui.

Cortesia dell'immagine:

1. "Codice sorgente in C" di Romainhk - Opera personale (immagine e codice) (CC BY-SA 3.0) via Commons Wikimedia
2. "Passi per la costruzione del linguaggio C" (CC BY-SA 3.0) via Commons Wikimedia