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.
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
C Lingua, file eseguibile, 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.
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.
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.
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.
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.
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.
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.
1. "Linker (Computing)." Wikipedia, Wikimedia Foundation, 6 ottobre 2018, disponibile qui.
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