2010-02-22 134 views

回答

122

编译是将源代码转换为目标代码的行为。

链接是将目标代码与库结合到原始可执行文件中的行为。

Building是由编译和链接组成的序列,可能还有其他任务,如安装程序创建。

许多编译器在编译源代码后自动处理链接步骤。

6

它们通常用于表示相同的事物。然而,“建立”也可以意味着编译和链接整个应用程序(在例如C和C++的情况下),或甚至更多,包括,除其他

  • 包装
  • 自动(单元的全部过程和/或集成)测试
  • 安装代
  • 安装/部署
  • 文件/现场发电
  • 报告生成(如测试结果,覆盖)。

有喜欢Maven系统,其与生命周期,它由几个阶段,产生不同的伪影,可能使用的结果和工件从先前阶段的概念概括此。

16

wikipedia

在计算机软件的领域,术语软件构建指要么转换源代码文件到独立软件工件(一个或多个),可以在计算机上运行的过程中,或者这样做的结果。软件构建的最重要步骤之一是汇编过程,其中源代码文件被转换为可执行代码。

虽然简单程序的过程由一个单一的文件被编译,对于复杂软件的源代码可以由许多文件,并可以以不同的方式产生许多不同的版本相结合。

2

大多数人可能会互换使用这些条款。 你可以看到一个细微差别:编译只是你通过编译器传递一些源文件的步骤(gcc,javac,无论)。

构建可以被视为检查源的更一般过程,为已编译的工件创建目标文件夹,检查依赖关系,选择必须编译的内容,运行自动化测试,创建tar/zip/ditributions,推送到一个FTP等...

7

构建可以被看作是一个脚本,它包含许多步骤 - 其中的主要步骤是编译代码。 其它可以

  • 运行测试
  • 报告(例如覆盖)
  • 静态分析
  • 前和生成后对某些文件的步骤
  • 运行自定义工具
  • 创建安装
  • 为它们添加标签并将它们部署/复制到存储库
4

根据我的经验,我会说“编译”是指将一个或多个人类可读的源文件转换为字节码(C语言中的目标文件),而“构建”指定整个编译,链接过程和任何还需要完成整个软件包或项目。