コンパイルコードと実行可能コードの違いは何ですか?


回答:


159

コンパイルとは、ソースコードをオブジェクトコードに変換することです。

リンクとは、オブジェクトコードとライブラリを組み合わせて生の実行可能ファイルにすることです。

ビルドは、インストーラーの作成などの他のタスクを伴うコンパイルとリンクで構成されるシーケンスです。

多くのコンパイラは、ソースコードをコンパイルした後、リンク手順を自動的に処理します。


19

ウィキペディアから:

コンピューターソフトウェアの分野では、ソフトウェアビルドという用語は、ソースコードファイルをコンピューターで実行できるスタンドアロンソフトウェアアーティファクトに変換するプロセス、またはそうした結果を指します。ソフトウェアビルドの最も重要なステップの1つは、ソースコードファイルが実行可能コードに変換されるコンパイルプロセスです。

ためながら簡単プログラムプロセスがコンパイルされて単一のファイルから構成され、複雑なソフトウェアのソースコードは、多くのファイルから構成されてもよいし、多くの異なるバージョンを生成するために様々な方法で組み合わせることができます。


9

ビルドは、多くのステップで構成されるスクリプトと見なすことができます。その主なものは、コードのコンパイルです。その他は

  • テストの実行
  • レポート(例:カバレッジ)
  • 静的分析
  • ビルド前後のステップ
  • 特定のファイルに対してカスタムツールを実行する
  • インストールの作成
  • それらにラベルを付け、リポジトリにデプロイ/コピーする

7

彼らはしばしば同じことを意味するために使用されます。ただし、「ビルド」とは、アプリケーション全体(CやC ++の場合など)のコンパイルとリンクの完全なプロセス、またはとりわけ、以下を含む

  • パッケージング
  • 自動(ユニットおよび/または統合)テスト
  • インストーラーの生成
  • インストール/展開
  • ドキュメント/サイト生成
  • レポートの生成(テスト結果、カバレッジなど)。

Mavenのようなシステムがあり、これをライフサイクルの概念で一般化します。ライフサイクルはいくつかのステージで構成され、異なるアーティファクトを生成します。前のステージの結果とアーティファクトを使用する可能性があります。


5

私の経験から、「コンパイル」とは人間が読める1つまたは複数のソースファイルをバイトコード(Cのオブジェクトファイル)に変換することを指し、「ビルド」はコンパイル、リンク、その他の必要なプロセス全体を示しますパッケージまたはプロジェクト全体の完了。


2

ほとんどの人はおそらく同じ意味でこれらの用語を使用します。1つのニュアンスを確認できます。コンパイルは、ソースファイルをコンパイラ(gcc、javacなど)に渡すステップにすぎません。

ビルドは、ソースのチェックアウト、コンパイル済みアーティファクトのターゲットフォルダーの作成、依存関係のチェック、コンパイル対象の選択、自動テストの実行、tar / zip /配布の作成、ftpへのプッシュのより一般的なプロセスとして聞こえます、など...

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