2011-05-14 82 views
0

我有一個由[Microsoft] nmake構建的makefile。它引用另一個文件作爲include。我無法修改包含的文件。問題在於兩者使用的用戶定義的宏之一不適合include使用。我如何才能重新定義這個宏只用於包含它的地方?nmake:如何重新定義一個包含宏的宏?

我想是這樣的:!

`B = $(A)

A = $(C)

包括myfile.make

A = $(B)`

nmake,但不喜歡這個。有沒有另一種方法來做到這一點?

回答

0

我剛跑過一個測試用例,我得到的行爲與您的描述不符。

假設我有兩個生成文件,...

nuit.mak:

A=17 

!include nuit-a.mak 

A=5 

all: child main 

main: 
    @echo A = $(A) 

而且春意盎然,a.mak:

child: 
    @echo A = $(A) 

下面是我看到的結果:

c:\dev\make>nmake -f nuit.mak main 

A = 5 

c:\dev\make>nmake -f nuit.mak child 

A = 17 

c:\dev\make>nmake -f nuit.mak all 

A = 17 
A = 5 
+0

我認爲問題來自未使用常量秒。我得到的錯誤是圍繞'循環'定義。 – nuit9 2011-05-15 03:18:28