2017年2月4日

汎用 Makefile の書き方

概要
  C/C++ 言語において,コンパイラに MSVC++ ではなく GCC を使用する場合, コマンドラインから $ g++ main.cpp   のようにしてコンパイルを行うことは常である. ファイルが少ない場合や,依存関係の簡単な場合は, コマンドも短く,コンパイルも直ちに終わるため, 大きな問題とはならない. しかしながら, 少し複雑なプログラムを書けば, すぐに多くのファイルを引数に与える必要が生じる. これを解決するために,ご存じのとおり Makefile が使用される. しかしながら, 数十を超えるファイルの依存関係を, ベタ打ちで Makefile に記述することは, とても骨の折れる作業である. また, 誤った記述によるコンパイルエラーや, ファイルの追加や削除による書き換えなど, 非常に手間がかかる. そこで, ファイルとその依存関係を自動で認識し, Makefile の変更を最小限に抑えた, 汎用的に使用できる Makefile が求められる. 現状存在する汎用 Makefile のネットサンプルを元に, 簡潔に理解でき,少ないコストで維持・管理可能かつ, 完動する汎用 Makefile を新たに作成する.