技術メモ(仮)

IT系の話や研究,他のことなど話して行けたらいいな~って感じです.ただいまJavaを学習中

コンパイルとビルドの違い

コンパイルっていう単語とビルドっていう単語は何が違うのか?
ていうか今までそれがわからないまま生きてきた自分が恥ずかしい...
今回両者の違いを調べてみた.

コンパイル

まずコンパイル!!
コンパイルとはソフトウェアの設計図(ソースコード)を実行可能な形式(オブジェクトコード)に変換することをいう.

ふむ,なんとなくそんな認識でいたので大丈夫な気がする.
javacとかすると依存関係もコンパイルされる.でも依存してないのはコンパイルしない.

ビルド

ソースコードのコンパイルやライブラリのリンクなどを行い,最終的な実行可能ファイルを作成すること.

最終的な実行ファイルを作成するか.となると全てのファイルをコンパイルして実行可能なアプリケーションの完成形を生み出すのかな?
じゃあ,リンクとは?

リンク

中間言語ファイルを結合して実行形式ファイルを生成する処理.
リンクという作業の一つの目的は、ライブラリを使えるようにすること.
だからライブラリをつなげたり呼び出したりできるようにする作業である.

自分なりの結論

全てのファイルをコンパイルしてリンクでつなぎ実行可能なアプリケーションの完成形を生み出すということなのであろう.たぶん...

昨今IDEではプロジェクトという単位でアプリケーションを作っている.
プロジェクトは色んなプログラム,ライブラリを用いて作成される場合がほとんどである.
それを実行可能なプログラムファイルを作成するときに使うのがビルドだと思う.

これ以上深い話は後日.
夜も遅いのでおやすみします.

ではでは.