2011-05-14 81 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