[解決済み】Makefileの中の.PHONYの目的は何ですか?
質問
とは何ですか?
.PHONY
はMakefileの中でどのような意味を持つのでしょうか?私は
これ
しかし、それはあまりにも複雑です。
誰かわかりやすく説明してくれませんか?
どのように解決するのですか?
デフォルトでは、Makefile のターゲットは "ファイル ターゲット" であり、他のファイルからファイルをビルドするために使用されるものです。Make はターゲットをファイルだと仮定しているので、Makefile を書くのが比較的簡単です。
foo: bar
create_one_from_the_other foo bar
しかし、時には、ファイルシステム上の物理的なファイルを表さないコマンドをMakefileで実行させたい場合があります。この良い例が、一般的なターゲットである "clean" と "all" です。このような場合でない可能性もありますが、あなたは
かもしれません
という名前のファイルがある可能性があります。
clean
をメインディレクトリに配置します。このような場合、Make は混乱します。なぜなら、デフォルトでは
clean
ターゲットがこのファイルに関連付けられ、Make はそのファイルが依存関係に関して最新でないように見えるときだけ実行します。
これらの特別なターゲットは インチキ で、Make にファイルに関連付けられていないことを明示的に伝えることができます。
.PHONY: clean
clean:
rm -rf *.o
現在
make clean
という名前のファイルがあったとしても、期待通りに実行されます。
clean
.
Makeでいうところのニセモノターゲットとは、単に常に古いターゲットということであり、そのために
make <phony_target>
ファイルシステムの状態とは関係なく、実行されます。いくつかの一般的な
make
のターゲットで、ニセモノであることが多いものは、次のとおりです。
all
,
install
,
clean
,
distclean
,
TAGS
,
info
,
check
.
関連
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】Makeエラー:セパレータがない
-
[解決済み】「make」と「make all」の違いとは?
-
[解決済み] Makefile での .PHONY の使用方法
-
[解決済み] makefileでLDFLAGSを使用する方法
-
[解決済み] GNU Makefile の変数割り当て =, ?=, :=, += の違いは何ですか?
-
[解決済み] makefile の記号 $@ と $< はどういう意味ですか?
-
[解決済み】Makefileの現在の相対ディレクトリを取得する方法は?
-
[解決済み] makefileで別のターゲットを実行する
-
[解決済み] GNU MakeのCPPFLAGSとCXXFLAGSの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ターゲットが指定されていない場合、「make」アプリはどのようにしてビルドするデフォルトターゲットを知るのですか?
-
[解決済み] デバッグとリリースのビルドを行うためのmakefileを設定するにはどうすればよいですか?
-
[解決済み] makefile の "ifeq" 条件構文
-
[解決済み] makefileの "all "は何の略ですか?
-
[解決済み] makefileでLDFLAGSを使用する方法
-
[解決済み] Makefile.amとMakefile.inとは何ですか?
-
[解決済み] 変数が設定されていない場合、makefileを中断させるには?
-
[解決済み] CLionでCMakeの代わりにローカルのmakefileを使用する
-
[解決済み] 別のMakefileからMakefileを呼び出すには?
-
[解決済み] GNU MakeのCPPFLAGSとCXXFLAGSの違いについて