2
COMMON= D_FF       
all :  
        ncverilog $(COMMON).v
test1:     
        COMMON=T_FF  
    ncverilog $(COMMON).v  
test2:  
    COMMON=JK_FF_tb  
    ncverilog $(COMMON).v   
test3:   
    COMMON=JK_FF  
    ncverilog $(COMMON).v    

グローバル変数をローカル変数に置き換えたいだけですが、機能していません。「 」を呼び出した場合と同様に、「 」ではなくmake test1「 」のみを置き換えています。 COMMON=D_FFCOMMON=T_FF

4

2 に答える 2

4

あなたの質問のmakefileには、そのフォーマットがすべて混同されています。ただし、メイクファイルは次のように書き換えることができるようです。

COMMON = D_FF
test1 : COMMON = T_FF
test2 : COMMON = JK_FF_tb 
test3 : COMMON = JK_FF

all test1 test2 test3 :
    ncverilog $(COMMON).v
于 2012-07-12T06:55:13.747 に答える
0

makeは宣言型言語であり、使い慣れたプログラミング言語とはほとんど異なるスコープ規則があります。 COMMONターゲット固有の変数を設定する(わずかに例外的な)方法があるため、「グローバル」ではありません(Reinierの回答を参照)。

于 2012-07-13T01:45:40.037 に答える