makefile の書き方 (1/2)

なぜ makefile が必要なのか?

前節までに、プログラムをビルドする方法を説明しました。

複数ファイルのコンパイルとリンク方法では複数ファイルの、コンパイルとリンクは次のコマンドになります。

> cl /c test.cpp username.cpp
> link advapi32.lib test.obj username.obj /OUT:test.exe

さらに「よく使うコンパイル・リンカオプション」で説明したオプションを加えると、 開発時には次のようなオプションになります。

> cl /c /Zi /DUNICODE /D_UNICODE 
/D_WIN32_WINNT=0x0600 /W4 test.cpp username.cpp
> link advapi32.lib test.obj username.obj 
/DEBUG /MAP:test.map /PDB:test.pdb /OUT:test.exe

コンパイルするファイルが多くなると、それら全てをコマンドラインに指定しなければならないのでさらに複雑になります。

また、本来はソースファイルに変更がなければオブジェクトファイルを作り直す必要はありませんが、この方法では常に全てのファイルが、変更のあるなしに関わらずコンパイルし直されてしまいます。

これはファイルが数個である場合は問題にならないかもしれませんが、大規模のソフトウエアになると全てのコンパイルし直しに大変時間がかかるため、 非常にわずらわしいことです。

そこで、Windows SDK では、必要なファイルのみをビルドしなおすなど、条件によって柔軟に効率よくビルドするための方法が用意されています。 それが nmake コマンドと makefile です。

それでは、実際に makefile を書き、どれだけビルドプロセスが簡易化されるかみてみましょう!

次へ » [makefile の具体例]

« 前の記事 次の記事 »
よく使うコンパイル・リンカオプション 開発環境・ビルド編 - 目次

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説