Quelle est la différence entre construire et compiler?

Réponses:

34

La compilation fait partie d'un processus de génération.

Un processus de construction peut inclure des tests, le conditionnement et d'autres activités en dehors de la compilation.

Oded
la source
19

«Construire» est un terme assez général, et il peut faire référence à tout ce qui est nécessaire pour passer du matériel source modifiable (code source, scripts, fichiers de données brutes, etc.) à un produit logiciel livrable. La construction peut (et implique généralement) plusieurs étapes, telles que le prétraitement, la compilation, la liaison, la conversion des fichiers de données, l'exécution de tests automatisés, l'empaquetage, etc.

La «compilation» est plus spécifique et fait presque invariablement référence à un processus qui prend le code source comme entrée et génère quelque chose d'exécutable, généralement du code machine pour une machine physique ou virtuelle, ou du code source dans une langue différente.

tdammers
la source
9

Ces termes sont souvent utilisés de manière interchangeable, mais je les différencierais de la manière suivante:

  • La construction se fait lors de la préparation d'une demande de publication, ce qui comprend la compilation, l'empaquetage, les tests, etc.
  • La compilation est effectuée à tout moment où le compilateur est impliqué dans la traduction du code du langage de programmation en code machine.

Ainsi, la compilation est vraiment un sous-ensemble de la construction.

Bernard
la source
1
"La construction se fait lors de la préparation d'une application pour la publication" - ne dites pas que la foule d'intégration continue;) Ou tout autre utilisateur avide de builds automatiques, d'ailleurs.
1
@delnan: D'accord. L'intégration continue crée de nombreuses «versions» au cours de la durée de vie d'une application. Cependant, tout ou partie de ces versions peuvent être utilisées pour préparer une version publique. Cela dépend de vos processus de construction, de test et d'approbation.
Bernard
3
Eh bien, selon la foule de livraison continue, chacune de ces versions devrait être prête à être publiée. Mais la pratique dit le contraire, et généralement les "builds" peuvent servir à n'importe quel but qui est aidé en préparant le logiciel à s'exécuter et en le testant. Les versions de débogage, par exemple. Ou vérifiez que vos modifications n'ont pas cassé l'un des 16 millions de tests.
2
@delnan - Et une build qui échoue à ses tests? Selon les normes de la livraison continue, c'est une version mais pas prête pour la sortie :)
Oded
2

La compilation est effectuée par le compilateur, la construction peut être un processus plus complexe.

Par exemple. en C ++ pour faire un build d'un projet dont vous avez besoin d'un préprocesseur (prétraitement des fichiers source); compilateur (compilation de fichiers source); éditeur de liens (tout fusionner en exécutable - code compilé, icônes, chaînes, autres ressources ensemble)

Donc, généralement, la compilation consiste à traduire du code écrit dans une langue dans une autre (par exemple, le code machine).

Slawek
la source