Wat is het verschil tussen compileercode en uitvoerbare code?

Ik gebruik de termen compilerenen buildaltijd door elkaar.

Waar staan ​​deze termen precies voor?


Antwoord 1, autoriteit 100%

Compilerenis het omzetten van broncode in objectcode.

Koppelenis het combineren van objectcode met bibliotheken tot een onbewerkt uitvoerbaar bestand.

Bouwenis de volgorde die bestaat uit compileren en koppelen, met mogelijk andere taken zoals het maken van installatieprogramma’s.

Veel compilers verwerken de koppelingsstap automatisch na het compileren van de broncode.


Antwoord 2, autoriteit 13%

Van wikipedia:

Op het gebied van computersoftware verwijst de term software buildnaar het proces van het converteren van broncodebestanden naar zelfstandige softwareartefact(en) die op een computer kunnen worden uitgevoerd, of naar het resultaat van dit doen. Een van de belangrijkste stappen van een softwarebuild is het compilatieproceswaarbij broncodebestanden worden omgezet in uitvoerbare code.

Terwijl voor eenvoudigeprogramma’s het proces bestaat uit een enkel bestand dat wordt gecompileerd, kan voor complexe software de broncode uit veel bestanden bestaan ​​en op verschillende manieren worden gecombineerd om veel verschillende versies te produceren.

p>


Antwoord 3, autoriteit 5%

Een build zou kunnen worden gezien als een script, dat uit vele stappen bestaat – waarvan de eerste het compileren van de code zou zijn.
Anderen kunnen zijn

  • testen uitvoeren
  • rapportage (bijv. dekking)
  • statische analyse
  • stappen voor en na het bouwen
  • aangepaste tools uitvoeren over bepaalde bestanden
  • installaties maken
  • ze labelen en implementeren/kopiëren naar een repository

Antwoord 4, autoriteit 4%

Ze worden vaak gebruikt om hetzelfde te betekenen. “build” kan echter ook het volledige proces van het compileren en koppelen van een hele applicatie betekenen (in het geval van bijvoorbeeld C en C++), of zelfs meer, inclusief onder andere

  • verpakking
  • automatisch (unit en/of integratie) testen
  • generatie installatieprogramma
  • installatie/implementatie
  • documentatie/site genereren
  • het genereren van rapporten (bijv. testresultaten, dekking).

Er zijn systemen zoals Maven, die dit veralgemenen met het concept van levenscyclus, die uit verschillende fasen bestaat, die verschillende artefacten produceren, mogelijk met behulp van resultaten en artefacten uit eerdere fasen.


Antwoord 5, autoriteit 3%

Vanuit mijn ervaring zou ik zeggen dat “compileren” verwijst naar de conversie van een of meerdere door mensen leesbare bronbestanden naar bytecode (objectbestanden in C), terwijl “bouwen” het hele proces van compileren, koppelen en wat dan ook aanduidt moet worden gedaan van een heel pakket of project.


Antwoord 6

De meeste mensen zouden de termen waarschijnlijk door elkaar gebruiken.
Je zou één nuance kunnen zien: compileren is slechts de stap waarbij je een bronbestand door de compiler geeft (gcc, javac, wat dan ook).

Bouwen kan worden gezien als het meer algemene proces van het uitchecken van de bron, het maken van een doelmap voor de gecompileerde artefacten, het controleren van afhankelijkheden, kiezen wat moet worden gecompileerd, het uitvoeren van geautomatiseerde tests, het maken van een tar / zip / distributies, pushen naar een ftp, enz…

Other episodes