私は常に用語compileとbuildを同じ意味で使用しています。
これらの用語の正確な意味は何ですか?
コンパイルは、ソースコードをオブジェクトコードに変換する動作です。
リンクは、オブジェクトコードとライブラリを生の実行可能ファイルに結合する行為です。
Buildingは、インストーラー作成などの他のタスクを伴う可能性のあるコンパイルとリンクで構成されるシーケンスです。
多くのコンパイラは、ソースコードのコンパイル後にリンク手順を自動的に処理します。
wikipedia から:
コンピューターソフトウェアの分野では、ソフトウェアbuildという用語は、ソースコードファイルを実行可能なスタンドアロンソフトウェアアーティファクトに変換するプロセスのいずれかを指します。コンピューター上、またはその結果。ソフトウェアビルドの最も重要な手順の1つは、ソースコードファイルを実行可能コードに変換するcompilationプロセスです。
simpleプログラムの場合、プロセスはコンパイルされる単一のファイルで構成されますが、複雑なソフトウェアの場合、ソースコードは多くのファイルで構成され、さまざまな方法で組み合わされてさまざまなバージョンを生成します。
ビルドは、多くのステップで構成されるスクリプトと見なすことができます。主なステップは、コードをコンパイルすることです。その他は
多くの場合、同じことを意味するために使用されます。ただし、「ビルド」とは、アプリケーション全体(CやC++などの場合)をコンパイルおよびリンクする完全なプロセスを意味する場合もあります。
Maven のようなシステムがあり、これはlifecycleの概念でこれを一般化します。前の段階の結果と成果物を使用する可能性があります。
私の経験から言うと、「コンパイル」とは1つまたは複数の人間が読み取れるソースファイルをバイトコード(Cのオブジェクトファイル)に変換することを指し、「ビルド」はコンパイル、リンク、その他の必要なプロセス全体を指しますパッケージまたはプロジェクト全体の完了。
ほとんどの人はおそらくこの用語を同じ意味で使用します。 1つのニュアンスがあります。コンパイルは、コンパイラ(gcc、javacなど)を介してソースファイルを渡すステップにすぎません。
ビルドは、ソースをチェックアウトし、コンパイルされたアーティファクトのターゲットフォルダーを作成し、依存関係をチェックし、コンパイルするものを選択し、自動テストを実行し、tar/Zip /配布を作成し、ftpにプッシュする、より一般的なプロセスとして聞くことができますなど.