テクノロジー · 実用ガイド

make の「No rule to make target」は?再ビルド前に欠けたノードを追跡する

このエラーは依存グラフで見つからない、または生成できないノードを示します。Makefile、展開後の名前、ファイル実体、規則検索を先に固定します。

オリジナル概念イラスト:欠けた前提と切れた辺を持つビルドターゲット図。
オリジナル概念イラスト:オリジナル図:欠けたグラフノードを特定。 Watch at Ease

このメッセージは make が見つけられず生成もできなかった最初の依存グラフノードを示します。正確な綴りと生成元の Makefile・変数を残し、全ビルドツリーではなく一本の切れた辺だけを直します。

要求ゴールの欠落、前提ファイルの欠落、展開パスの誤り、または明示・暗黙規則の不在が同じ症状になります。

1. 最初のグラフ失敗を固定する

再帰 make の階層と引用名を含む最初の完全な診断を保存します。pwd -P、コマンド、make --version、MAKEFLAGS、代入値を記録します。生成依存ファイルと失敗順序を失うため、最初に make clean を実行しません。

「needed by」がなければ要求ゴール自体、「needed by」があれば親から欠けたノードへの一本の辺として分類し、その枝だけを追います。

2. 読み込まれた Makefile と名前を証明する

GNU make -pn など実装の読み取り専用データベース/デバッグ出力で、読まれた Makefile を保存します。再帰ビルドでは entering-directory も残し、子 make の別ツリーと変数を区別します。

データベースと元 Makefile で欠けた文字列と親を検索し、引数・環境上書き、include、VPATH、生成断片、設定出力を確認します。空名や異常空白はバイト表示で調べます。

3. 記憶ではなくファイル実体を調べる

失敗した make のディレクトリから、展開後の正確なパスを stat、readlink、大小文字を区別する一覧で確認します。壊れたリンク、改名、大小文字、未初期化サブモジュール、古い絶対ライブラリパスを分けます。

生成されるべきノードなら生成器、機能フラグ、出力宣言規則を特定します。空のダミーファイルは無効な内容で先へ進み、本来動かなかった生成器を隠すので作りません。

4. 規則検索の境界を証明する

既存ソースならパス修正またはレビュー済みファイルの復元、生成ノードなら明示規則、stem を持つ有効なパターン、適用可能な推論規則とその前提を証明します。

文字どおりの %、空変数、無効な共有ライブラリ機能、生成 Makefile を別枝として扱います。別ツール生成なら元設定を直して再生成し、使い捨て Makefile を手編集しません。

5. 一本の辺だけを修復して再検証する

一つの名前、一つのソース、一つの生成器、一つの依存宣言、またはレビュー済み設定からの再生成という最小変更を選び、旧メタデータは証拠として保持します。

同じディレクトリと環境で元コマンドを再実行します。意図した規則でノードが解決し親が進み、二回目の no-op/増分実行が安定したら、前後のデータベース、ファイル身元、成果物確認を保存します。

オリジナル概念イラスト:作業ディレクトリから規則選択までの五つの証拠。
オリジナル概念イラスト:オリジナル図:再ビルド前にグラフを証明。 Watch at Ease