Was ist der Unterschied zwischen Erstellen und Kompilieren?


Antworten:


34

Das Kompilieren ist Teil eines Build-Prozesses.

Ein Build-Prozess kann neben der Kompilierung auch Tests, Packs und andere Aktivitäten umfassen.


19

"Erstellen" ist ein ziemlich allgemeiner Begriff und kann sich auf alles beziehen, was benötigt wird, um von editierbarem Quellmaterial (Quellcode, Skripten, Rohdatendateien usw.) zu einem versandfähigen Softwareprodukt zu gelangen. Das Erstellen kann (und muss in der Regel) mehrere Schritte umfassen, z. B. Vorverarbeitung, Kompilieren, Verknüpfen, Konvertieren von Datendateien, Ausführen automatisierter Tests, Verpacken usw.

"Kompilieren" ist spezifischer und bezieht sich fast immer auf einen Prozess, der Quellcode als Eingabe verwendet und etwas Ausführbares ausgibt, normalerweise Maschinencode für eine physische oder virtuelle Maschine oder Quellcode in einer anderen Sprache.


9

Diese Begriffe werden oft synonym verwendet, aber ich würde sie folgendermaßen unterscheiden:

  • Die Erstellung erfolgt bei der Vorbereitung eines Antrags auf Freigabe, der das Kompilieren, Packen, Testen usw. umfasst.
  • Das Kompilieren erfolgt zu jedem Zeitpunkt, zu dem der Compiler an der Übersetzung des Programmiersprachencodes in Maschinencode beteiligt ist.

Das Kompilieren ist also wirklich eine Teilmenge des Bauens.


1
"Die Erstellung erfolgt, wenn eine Anwendung für die Veröffentlichung vorbereitet wird" - sagen Sie dies nicht der Masse der kontinuierlichen Integration.

1
@delnan: Einverstanden. Durch die kontinuierliche Integration werden während der gesamten Lebensdauer einer Anwendung viele "Builds" erstellt. Einige oder alle dieser Builds können jedoch zur Vorbereitung einer öffentlichen Veröffentlichung verwendet werden. Dies hängt von Ihren Build-, Test- und Genehmigungsprozessen ab.
Bernard

3
Nun, laut der Menge der kontinuierlichen Auslieferungen sollte jeder dieser Builds zur Veröffentlichung bereit sein. Die Praxis sagt jedoch etwas anderes und "Builds" können im Allgemeinen jedem Zweck dienen, der durch die Vorbereitung und das Testen der Software unterstützt wird. Zum Beispiel Debug-Builds. Oder überprüfen Sie, ob Ihre Änderungen keinen der 16 Millionen Tests beeinträchtigt haben.

2
@delnan - Was ist mit einem Build, der seine Tests nicht besteht? Nach den Maßstäben der ununterbrochenen Lieferung ist es ein Build, der jedoch nicht zur Veröffentlichung bereit ist :)
Oded

2

Das Kompilieren erfolgt durch den Compiler, das Erstellen kann komplexer sein.

Z.B. In C ++ benötigen Sie zum Erstellen eines Projekts einen Präprozessor (Vorverarbeitung von Quelldateien). Compiler (Kompilieren von Quelldateien); Linker (alles in eine ausführbare Datei zusammenführen - kompilierter Code, Symbole, Zeichenfolgen, andere Ressourcen zusammen)

Generell übersetzt das Kompilieren Code, der in einer Sprache in eine andere Sprache geschrieben wurde (z. B. Maschinencode).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.