コンパイル・リンク・ビルド・メイクって何?

はじめに

c言語を例にざっくりと調べてみた.

コンパイルって何?

コンパイルといっても広義と狭義の2種類の意味があるっぽい.
(1)コンパイル(広義)...ソースファイルをオブジェクトファイルに変換すること
(2)コンパイル(狭義)...ソースファイルをアセンブリファイルに変換すること

f:id:bunkyu3:20180924203931p:plain

リンクって何?

リンク...複数のオブジェクトファイルをまとめ,実行形式ファイルを作成すること

f:id:bunkyu3:20180924205624p:plain:w320
(注意)
ややこしいことに,最近のコンパイラにはリンクの機能が統合されているらしい

ビルドって何?

ビルド...ソースファイルを(コンパイル+リンクによって)実行形式ファイルにすること

メイクって何?

メイク...Makefileを用いて,ビルドを効率的に行うこと