どのような地獄です.偽目標?
規則入門
このMakefile Serieに関する以前の記事では、非常にシンプルなMakefileを書きました.ルールは非常に簡単な方法で書かれています.
target_name:
<instruction 1>
<instruction 2>
....
あるいはもう少し複雑なものですが、まだとても簡単な方法です.target_name: another_target
<instruction 1>
<instruction 2>
....
時々私はいくつかのオープンソースプロジェクトや単に私の作業プロジェクトで複雑な何かに会った.以下に例を示します:target_name: another_target
<instruction 1>
<instruction 2>
....
.PHONY :target_name
問題はです.地獄は.PHONY
ですか?同じ名前のファイルとの衝突
このような規則があるとしましょう.
bighello:
echo "hello"
ランmake bihello
を実行すると、「hello」と表示されます.しかし、bightelloと呼ばれるファイルが同じフォルダでつくられるとき、何が起こりますか?touch bighello
それで私たちはbighello
と呼ばれる規則とファイルを同じ方法で呼びます.我々がbighello
を走らせるとき、現在起こること?make bighello
make: `bighello' is up to date.
ここでは紛争がある!偽ターゲット
この種のターゲットはファイルの名前ではありません.それはちょうどレシピの名前です.明示的なリクエストを行うときに実行する必要があるレシピ.ルールを書くこの方法は、同じ名前のファイルとの衝突を避けます.
ルールを書き換えることができます.偽罪税
bighello:
echo "hello"
.PHONY: bighello
今すぐ動作!結論
前に述べた通り.偽の構文は、同じ名前のファイルとの衝突を避けるのを助けます.この特別な目標により複雑さがあります.私は、Makefileの非複雑な使用のために十分であると思います.しかし、あなたが偽の目標に深く行きたいならば、私はあなたに.Phony targesについてRed GNU公式ドキュメンテーションに提案します.
Reference
この問題について(どのような地獄です.偽目標?), 我々は、より多くの情報をここで見つけました https://dev.to/sensorario/what-hell-are-phony-targets-5358テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol