ビルドとコンパイルの違いは何ですか?


回答:


34

コンパイルはビルドプロセスの一部です。

ビルドプロセスには、コンパイル以外のテスト、パッケージング、およびその他のアクティビティを含めることができます。


19

「ビルド」とはかなり一般的な用語であり、編集可能なソースマテリアル(ソースコード、スクリプト、生データファイルなど)から出荷可能なソフトウェア製品に移行するために必要なものを指します。ビルドには、前処理、コンパイル、リンク、データファイルの変換、自動化されたテストの実行、パッケージングなどのいくつかの手順が含まれます(通常は行われます)。

「コンパイル」はより具体的で、ほぼ常に入力としてソースコードを受け取り、実行可能な何か、通常は物理マシンまたは仮想マシンのマシンコード、または異なる言語のソースコードを出力するプロセスを指します。


9

これらの用語はしばしば同じ意味で使用されますが、次のように区別します。

  • ビルドは、アプリケーションをリリース用に準備するときに行われます。これには、コンパイル、パッケージ化、テストなどが含まれます。
  • コンパイルは、プログラミング言語コードのマシンコードへの変換にコンパイラーが関与するときにいつでも実行されます。

したがって、コンパイルは実際にはビルドのサブセットです。


1
「リリースのためにアプリケーションを準備するときにビルドが行われます」-継続的な統合群衆に言わないでください;)または、自動ビルドの他の熱心なユーザーは、そのことについては。

1
@delnan:同意した。継続的インテグレーションは、アプリケーションの存続期間にわたって多くの「ビルド」を作成します。ただし、これらのビルドの一部またはすべては、公開リリースの準備に使用できます。ビルド、テスト、承認のプロセスに依存します。
バーナード

3
絶え間ない配信群衆によると、これらの各ビルドはリリースの準備ができているはずです。しかし、練習はそうではなく、一般的に「ビルド」は、ソフトウェアを実行する準備をしてテストすることによって支援されるあらゆる目的に役立つ可能性があります。たとえば、ビルドをデバッグします。または、変更が1600万のテストのいずれにも違反していないことを確認します。

2
@delnan-テストに失敗したビルドはどうですか?絶え間ない配信の基準により、ビルドですがリリースの準備ができていません :)
Oded

2

コンパイルはコンパイラによって行われ、ビルドはより複雑なプロセスになる可能性があります。

例えば。C ++でプロジェクトのビルドを作成するには、プリプロセッサ(ソースファイルの前処理)が必要です。コンパイラ(ソースファイルのコンパイル); リンカー(すべてを実行可能ファイルにマージ-コンパイルされたコード、アイコン、文字列、その他のリソースを一緒に)

そのため、一般的にコンパイルとは、ある言語で書かれたコードを別の言語に翻訳することです(例えば、マシンコード)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.