29 生成和编译之间有什么区别。 programming-languages terminology difference compilation build-system — 维斯瓦斯 source 2 还请检查以下内容:stackoverflow.com/questions/2650168/building-vs-compiling-java — Florents Tselai 2012年
19 “构建”是一个相当笼统的术语,它可以指从可编辑的源材料(源代码,脚本,原始数据文件等)到可交付的软件产品所需的任何内容。构建可能(并且通常确实)涉及几个步骤,例如预处理,编译,链接,转换数据文件,运行自动化测试,打包等。 “编译”是更具体的,几乎总是指将源代码作为输入并输出可运行的东西的过程,通常是物理机或虚拟机的机器代码,或者是其他语言的源代码。 — 炸弹 source
9 这些术语通常可以互换使用,但是我将通过以下方式对其进行区分: 在准备发布应用程序时会完成构建,其中包括编译,打包,测试等。 编译器在将编程语言代码转换为机器代码时可以随时进行编译。 因此,编译实际上是构建的子集。 — 伯纳德 source 1 “在准备发布应用程序时就完成了构建” –不要告诉不断的集成人群;)或者其他任何自动构建的狂热用户。 1 @delnan:同意。持续集成会在应用程序的整个生命周期内创建许多“构建”。但是,任何或所有这些内部版本都可以用于准备公开发布。这取决于您的构建,测试和批准过程。 — 伯纳德 3 好吧,根据不断交付的人群,这些构建中的每一个都应该准备发布。但是实践却相反,通常,“构建”可以通过使软件准备好运行和测试来达到任何目的。例如,调试版本。或者检查您的更改没有破坏1600万个测试中的任何一个。 2 @delnan-测试失败的构建如何处理?按照连续交付的标准,它是一个构建版本,但尚未发布:) — Oded
2 编译是由编译器完成的,构建过程可能更复杂。 例如。在C ++中,要构建项目,您需要预处理器(源文件的预处理);编译器(源文件的编译);链接器(将所有内容合并为可执行文件-编译后的代码,图标,字符串和其他资源在一起) 因此,通常的编译是将以一种语言编写的代码翻译为另一种语言(例如,机器代码)。 — 斯拉维克 source