プログラミングユーティリティ

推奨および警告

最も頻繁に発生する問題は、make 固有の依存関係の意味が原因となっています。ファイル x.c に以下の行が記述されているとします。

#include "defs.h"

この場合は、オブジェクトファイル x.o は、defs.h に依存しますが、ソースファイル x.c は依存しません。defs.h が変更されると、x.c は変更されませんが、x.o は再作成する必要があります。

このとき、make が行う処理を確認するには、-n オプションが非常に便利です。

$ make -n

このコマンドは、make が実行するコマンドを、実際には実行せずに出力だけを行います。ファイルの変更の影響が少ない場合 (組み込みファイルにコメントを追加する場合など) は、-t (touch) オプションを使用すると時間を節約できます。make は、不要な再コンパイルを何度も実行する代わりに、影響のあるファイルの変更時間だけを更新します。

$ make -ts

したがって、このコマンド (警告を表示しないで touch を実行する) は、関連するファイルを最新にします。このコマンドを実行すると、make の処理が無効になり以前の関係が破棄されるため、使用する際は十分に注意してください。