Qual è la differenza tra codice di compilazione e codice eseguibile?


Risposte:


159

La compilazione è l'atto di trasformare il codice sorgente in codice oggetto.

Il collegamento è l'atto di combinare il codice oggetto con le librerie in un eseguibile grezzo.

La costruzione è la sequenza composta dalla compilazione e dal collegamento, con possibilmente altre attività come la creazione dell'installatore.

Molti compilatori gestiscono automaticamente la fase di collegamento dopo aver compilato il codice sorgente.


19

Da wikipedia :

Nel campo del software per computer, il termine build del software si riferisce al processo di conversione dei file del codice sorgente in artefatti software autonomi che possono essere eseguiti su un computer o al risultato di tale operazione. Uno dei passaggi più importanti di una build software è il processo di compilazione in cui i file del codice sorgente vengono convertiti in codice eseguibile.

Mentre per i programmi semplici il processo consiste nella compilazione di un singolo file, per il software complesso il codice sorgente può essere costituito da molti file e può essere combinato in modi diversi per produrre molte versioni differenti.


9

Una build potrebbe essere vista come uno script, che comprende molti passaggi, il principale dei quali sarebbe compilare il codice. Altri potrebbero esserlo

  • esecuzione di test
  • reporting (es. copertura)
  • analisi statica
  • passaggi pre e post-build
  • eseguire strumenti personalizzati su determinati file
  • creazione di installazioni
  • etichettandoli e distribuendoli / copiandoli in un repository

7

Spesso sono usati per significare la stessa cosa. Tuttavia, "build" può anche significare l'intero processo di compilazione e collegamento di un'intera applicazione (nel caso ad esempio di C e C ++), o anche di più, incluso, tra gli altri

  • confezione
  • test automatici (di unità e / o integrazione)
  • generazione dell'installatore
  • installazione / distribuzione
  • documentazione / generazione del sito
  • generazione di report (es. risultati dei test, copertura).

Esistono sistemi come Maven , che generalizzano questo concetto con il concetto di ciclo di vita , che consiste in diverse fasi, producendo artefatti diversi, possibilmente utilizzando risultati e artefatti delle fasi precedenti.


5

Dalla mia esperienza direi che "compilazione" si riferisce alla conversione di uno o più file sorgente leggibili dall'uomo in codice byte (file oggetto in C) mentre "costruzione" denomina l'intero processo di compilazione, collegamento e qualsiasi altra cosa debba essere fatto di un intero pacchetto o progetto.


2

La maggior parte delle persone probabilmente userebbe i termini in modo intercambiabile. Potresti vedere una sfumatura: la compilazione è solo il passaggio in cui passi un file sorgente attraverso il compilatore (gcc, javac, qualunque cosa).

La compilazione potrebbe essere percepita come il processo più generale di estrazione dell'origine, creazione di una cartella di destinazione per gli artefatti compilati, controllo delle dipendenze, scelta di ciò che deve essere compilato, esecuzione di test automatizzati, creazione di un tar / zip / ditributions, invio di un ftp , eccetera...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.