0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ビルドとは

Posted at

「ビルド(Build)」とは、ソフトウェア開発において、ソースコードから実行可能なプログラムや配布可能なパッケージを作成するまでの一連の工程全体を指す言葉です。

先ほど説明した「コンパイル」は、この「ビルド」という大きなプロセスの一部に含まれます。

ビルドに含まれる主な工程

ビルドは、単にソースコードを機械語に変換するだけでなく、以下のような様々な工程を統合したものです。

  1. ソースコードの作成: プログラマがプログラミング言語でコードを記述します。
  2. 静的解析(Static Analysis): ソースコードの文法や潜在的なエラー、コーディング規約への準拠などを、実行せずに解析します。
  3. 前処理(Preprocessing): コンパイルの前に、ヘッダファイルの読み込みやマクロの展開などを行います。
  4. コンパイル(Compile): ソースコードをオブジェクトコード(機械語に近い中間コード)に変換します。
  5. リンク(Link): コンパイルによって生成された複数のオブジェクトファイルや、外部のライブラリファイルなどを結合して、最終的な実行可能ファイルを作成します。
  6. パッケージング(Packaging): 実行可能ファイルだけでなく、プログラムの動作に必要なリソースファイル(画像、音声、設定ファイルなど)やドキュメントなどをまとめて、配布可能な形式(インストーラ、アーカイブファイルなど)に圧縮・整理します。
  7. テスト(Test): 作成されたプログラムが期待通りに動作するかを検証します。ビルドプロセスに自動テストが組み込まれることも多いです。

なぜ「ビルド」という概念が必要か

  • 複雑なソフトウェアの統合: 実際のソフトウェアは、単一のファイルで構成されることは稀です。複数のソースファイル、外部ライブラリ、リソースファイルなどが連携して動作します。ビルドは、これらを「組み立てて(Build)」一つの動くソフトウェアにするプロセスです。
  • 開発の効率化: 手作業でこれらの工程を行うのは非常に手間がかかり、ミスも発生しやすいため、多くの場合「ビルドツール」(例: Make, Maven, Gradle, webpackなど)が用いられ、ビルドプロセスが自動化されます。
  • 再現性の確保: 常に同じ手順でソフトウェアを生成することで、異なる環境や時間でも同じバージョンのソフトウェアを作成できる再現性を確保します。
  • バージョン管理との連携: ソースコードの変更を検知して自動的にビルドを実行する「継続的インテグレーション(CI)」などの仕組みと連携することで、ソフトウェアの品質を継続的に保ちやすくなります。

まとめ

「コンパイル」はソースコードを機械語に変換する個別の作業を指しますが、「ビルド」はソフトウェアを構成する全ての要素を統合し、実行可能な状態にするまでの一連の工程全体を指します。つまり、コンパイルはビルドの一部として行われる、より広い概念がビルドであると理解すると良いでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?