1. ホーム
  2. makefile

[解決済み] Makefile での .PHONY の使用方法

2022-02-27 20:22:49

質問

の使い方を検索していると .PHONY を作成したとき、私は これ これは、次のようなものです。

.PHONYでは、関連するルールがないターゲットを持つこともできます。

その投稿にある例をmakefileに書いて実行したのですが、OPにあるようなエラーは表示されません。どなたか詳細をお願いします。

メイクファイル

target1: dostuff

.PHONY: target2
target2: dostuff



dostuff:
        @echo "Stuff gets done!!!!"

O/P

[sourav@titan temp]$ make target1
Stuff gets done!!!!
[sourav@titan temp]$ make target2
Stuff gets done!!!!
[sourav@titan temp]$ make
Stuff gets done!!!!
[sourav@titan temp]$

OPの通り、make target1 はエラーを投げるはずです。ご教示ください。

いくつかの情報

[sourav@titan temp]$ uname -r
2.6.18-194.el5PAE
[sourav@titan temp]$ make --version
GNU Make 3.81
[sourav@titan temp]$

解決方法は?

本当です。A .PHONY ターゲットは、ルールを持たずに依存関係だけを持つことができます。この場合、make はルールを実行しませんが、依存関係が満たされているかどうかをチェックします (満たされていない場合は、そのルールを実行します)。

したがって、あなたの例では、両方の target1target2 コール dostuff は依存関係にあるからです。