make・Makefile - デバッグ

 クラウディア
1. make を実行するときのオプション
2. -n (--just-print)
3. -p (--print-data-base)
4. --warn-undefined-variables

1. make を実行するときのオプション

 「Makefile」を記述して、「make」をかけると、思うような動作をしなかったり、プログラムのソースの問題でなくエラーで停止することがあります。  そういう目にあうのはわたしが至らないだけではありますが、同じような思いをする人がいるのでしょう。  「make」には、デバッグといっていいオプションがります。

2. -n (--just-print)


make -n
 「-n」、ロングオプションで「--just-print」を指定すると、「make」を実行しないで、実行すると動作するであろうコマンドを表示のみしてくれます。

3. -p (--print-data-base)


make -p
 「-p」、ロングオプションで「--print-data-base」を指定すると、「make」を実行したあと、「make」に使用したデータベースの内容を表示します。  変数、ディレクトリ、暗黙ルール、パターンに固有の変数、ファイル(明示的ルール)、検索パスが表示されます。  恐ろしく大量に出るのでこの中から問題を見つけるのはかなり困難です。

4. --warn-undefined-variables


make --warn-undefined-variables
 これはショートオプションが用意されていないので、後になってできたオプションかもしれません。  わたしはこれが一番役に立ちます。

[Makefile]のファイル名:行番号: 警告: 未定義の変数 '変数名'
 の形式で使用の有無を問いませんが、未定義の変数を出力してくれます。  うっかり変数名を間違えたり、定義していたつもりが出意義で来ていなかったなど、大変有用な情報かと思います。