超簡単なmakefile 第1回
今日から、Makefile(GNUMakefile)の書き方について連載で更新していこうかと思います。
初心者の方でも理解できるように丁寧に書いていくつもりです。
そもそもMakefileって?
コンパイルに必要なコマンド、ファイル、ファイルの参照パス、オプション、依存関係などを
書き込んだファイルです。
このファイルを使って、makeコマンドを実行することで、コンパイルを実施します。
一度Makefileをつくってしまえば、コンパイルの手間を大幅に減らすことができます。
また、差分コンパイルが可能で、ファイル修正後再コンパイルをする時間を短縮するメリットもあります。
書き込んだファイルです。
このファイルを使って、makeコマンドを実行することで、コンパイルを実施します。
一度Makefileをつくってしまえば、コンパイルの手間を大幅に減らすことができます。
また、差分コンパイルが可能で、ファイル修正後再コンパイルをする時間を短縮するメリットもあります。
Makefileのサンプル
何が便利か?
Makefileが便利な点を実例を示しながら、説明します。
前提として、ディレクトリ階層は以下のイメージ。
①Makeifleを使わないコンパイル。
コンパイル対象のソースであるSanple.cppがある階層で以下の通りコマンドを実行。
$ g++ -std=c++0x -I../inc -c Sample.cpp; g++ -o Sample Sample.o
プログラムの規模が小さいので、それほど面倒ではないですが、それでも一回一回手打ちでコンパイルするのは、かなりの手間です。
②Makeifleを使ったコンパイル
同じことをMakeifleを使ってやってみます。
Sanple.cppと同階層にMakeifileを配置して、以下の通りコマンドを実行。
$ make
以上!!
もう違いは、あきらかだと思いますが、Makefileは実際書くのは、結構面倒ですが、一度書いてしまえば
コンパイルの手間が圧倒的に減りミスも少なくなります。
特に、大きなプログラムであれば有るほどこの恩恵は大きいです。