编译代码和可执行代码之间有什么区别?

Laz*_*zer 113 terminology compilation build

我总是使用术语编译构建可互换.

这些术语究竟代表什么?

Ign*_*ams 153

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

链接是将目标代码与库组合成原始可执行文件的行为.

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

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


cod*_*ict 18

来自维基百科:

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

而对于简单程序,该过程包括正在编译的单个文件,对于复杂软件,源代码可以由许多文件组成,并且可以以不同方式组合以产生许多不同版本.


Gis*_*shu 9

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

  • 运行测试
  • 报告(例如报道)
  • 静态分析
  • 构建前和构建后的步骤
  • 在某些文件上运行自定义工具
  • 创建安装
  • 标记它们并将它们部署/复制到存储库


Pét*_*rök 7

它们通常用来表示同样的事情.但是,"构建"也可能意味着编译和链接整个应用程序(在例如C和C++的情况下)的全部过程,甚至更多,包括,等等

  • 打包
  • 自动(单元和/或集成)测试
  • 安装程序生成
  • 安装/部署
  • 文档/站点生成
  • 报告生成(例如测试结果,覆盖范围).

有像Maven这样的系统,它将生命周期的概念概括为一个,它包含几个阶段,产生不同的工件,可能使用前一阶段的结果和工件.


小智 5

根据我的经验,我会说"编译"是指将一个或几个人类可读的源文件转换为字节代码(C中的目标文件),而"构建"则表示编译,链接和其他任何需要的整个过程.完成整个包或项目.