2016-08-02 9 views
1

メイクファイルでアーカイブ内のターゲット・メンバーの名前は何ですか?makefile内のアーカイブターゲットメンバー名は何ですか?

ここで説明します。https://www.gnu.org/software/make/manual/html_node/Archive-Members.html#Archive-Members 簡単な例がないのでわかりません。私が持っている場合は

target(name): name 
     echo $% 

$%

は、ターゲット名の自動変数です。

私はmake targetを使用している場合、これは

理由を実行していないのだろうか?実際には「ターゲットメンバー名」とは何ですか?

+0

あなたは、これは正しい 'ar'ファイル、について話していることを理解していますか?通常、アーカイブはので、おそらく '.a'サフィックスを持っているが、'、 'ターゲット(名): – tripleee

+0

はあなたにも'ターゲットが必要になります、何のルールは 'target'を作るためにありません「私はターゲットを作る使用している場合、これは実行されません」 target.a:target.a(name) '。 – user657267

答えて

1

あなたはへのリンクのドキュメントは、具体的には先頭付近に、このことを説明しています。

この構成は、レシピではなくターゲットと前提条件でのみ使用できます。レシピで使用する可能性があるほとんどのプログラムは、この構文をサポートしておらず、アーカイブメンバーに直接作用することはできません。 arと、アーカイブで動作するように特別に設計された他のプログラムだけがそうすることができます。したがって、アーカイブメンバーターゲットを更新する有効なレシピは、おそらくarを使用する必要があります。したがって、たとえば、arアーカイブを作成する

nameを含むtargetと呼ばれ、コマンドがMakefileとして

touch name 
ar cr target name 

だろう、これは

target: name 
    ar cr [email protected] $^ 

name: 
    touch name 

target(name)構文は、ときに便利ですnameのコピーを操作したい場合は、targetの内部にあります。例えば、name場合はいくつかの点で再建された、あなたのMakefileあなたがtarget内のコピーを更新する必要があるかどうかを判断するために、targetnameメンバーの日付スタンプに対してその日付スタンプを比較したい場合があります。

target(name): name 
    ar cr [email protected] $% 

ただし、最初にtargetを作成する方法は指定しません。私が知る限り、私の例の上にあるようなレシピが必要です。

+0

どのような例でも動作しますか?私は実際に働く何かを必要とします – Thenewstockton

+0

あなたが探しているものはあなたの質問からはっきりしていません。何が現在動作しませんか? – tripleee

関連する問題