Risposte:
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.
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.
Una build potrebbe essere vista come uno script, che comprende molti passaggi, il principale dei quali sarebbe compilare il codice. Altri potrebbero esserlo
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
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.
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.
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...