2017-06-13 12 views
0

私はmakefileを使ってプロジェクトを進めています。いくつかのmakeルールは次の形式をとります:メイクファイル依存関係のコロンは何を意味しますか?

a.o b.o c.o : %.o : %.c 
    gcc -c $< -o [email protected] 

このようなルールの意味はなんですか?私は公式マニュアルで説明を見つけることができませんが、ターゲットとしてリストされた* .oファイルだけにパターンマッチングを適用するために使用されていると思います。あれは正しいですか? GNUから引用

答えて

0

は、

Static Pattern Rulesしてください。

スタティックパターンルールは、複数のターゲットを指定するルールであり、 は、ターゲット の名前に基づいて各ターゲットの前提条件名を構成します。複数のターゲットを持つ通常のルールよりも一般的です。 ターゲットには前提条件が同じである必要がないためです。それらの の前提条件は類似している必要がありますが、必ずしも同一である必要はありません。

静的パターンルールの構文:

targets : target-pattern: prereq-patterns … 
     recipe 
     … 

パターンルールは、ターゲットに%として言及されます。これは、.oここにa.o,b.oc.oのいずれかのターゲットの終わりに一致します。

ここで '$<’は、前提条件の名前を保持する自動変数です。' [email protected]は、ターゲットの名前を保持する自動変数です。

a.o b.o c.o : %.o : %.c 
    gcc -c $< -o [email protected] 
関連する問題