Odpowiedzi:
Kompilacja to czynność polegająca na przekształceniu kodu źródłowego w kod wynikowy.
Łączenie to czynność polegająca na połączeniu kodu obiektowego z bibliotekami w surowy plik wykonywalny.
Budowanie to sekwencja składająca się z kompilacji i linkowania, z możliwymi innymi zadaniami, takimi jak tworzenie instalatora.
Wiele kompilatorów obsługuje etap łączenia automatycznie po skompilowaniu kodu źródłowego.
Z Wikipedii :
W dziedzinie oprogramowania komputerowego termin „ kompilacja oprogramowania” odnosi się albo do procesu konwertowania plików kodu źródłowego na samodzielne artefakty oprogramowania, które można uruchomić na komputerze, albo do wyniku tego procesu. Jednym z najważniejszych etapów tworzenia oprogramowania jest proces kompilacji , w którym pliki kodu źródłowego są konwertowane na kod wykonywalny.
Podczas gdy w przypadku prostych programów proces składa się z jednego pliku, który jest kompilowany, w przypadku oprogramowania złożonego kod źródłowy może składać się z wielu plików i może być łączony na różne sposoby, aby utworzyć wiele różnych wersji.
Kompilację można postrzegać jako skrypt, który składa się z wielu etapów - z których podstawowym jest kompilacja kodu. Inni mogą
Często mają na myśli to samo. Jednak „budowanie” może oznaczać również pełny proces kompilacji i linkowania całej aplikacji (w przypadku np. C i C ++), a nawet więcej, w tym m.in.
Istnieją systemy takie jak Maven , które uogólniają to pojęciem cyklu życia , który składa się z kilku etapów, wytwarzających różne artefakty, być może wykorzystując wyniki i artefakty z poprzednich etapów.
Z własnego doświadczenia powiedziałbym, że „kompilacja” odnosi się do konwersji jednego lub kilku plików źródłowych czytelnych dla człowieka na kod bajtowy (pliki obiektowe w C), podczas gdy „budowanie” oznacza cały proces kompilacji, łączenia i wszystkiego innego, co musi być zrobione z całego pakietu lub projektu.
Większość ludzi prawdopodobnie używałaby tych terminów zamiennie. Możesz zobaczyć jeden niuans: kompilacja to tylko krok, w którym przekazujesz jakiś plik źródłowy przez kompilator (gcc, javac, cokolwiek).
Budowanie można było usłyszeć jako bardziej ogólny proces sprawdzania źródła, tworzenia folderu docelowego dla skompilowanych artefaktów, sprawdzania zależności, wybierania tego, co ma zostać skompilowane, uruchamiania automatycznych testów, tworzenia pliku tar / zip / ditributions, wypychania na ftp itp ...