nmake:如何为包含重新定义宏?
Posted
技术标签:
【中文标题】nmake:如何为包含重新定义宏?【英文标题】:nmake: How to redefine a macro just for an include? 【发布时间】:2011-05-14 16:48:54 【问题描述】:我有一个由 [Microsoft] nmake 构建的 makefile。它引用另一个文件作为包含。我无法修改包含的文件。问题是两者都使用的用户定义宏之一不太适合包含使用。我怎样才能重新定义这个宏只用于它在包含中的使用位置?
我尝试了类似的方法:
`B=$(A)
A=$(C)
!include myfile.make
A=$(B)`
nmake,但是不喜欢这样。有没有其他方法可以做到这一点?
【问题讨论】:
【参考方案1】:我刚刚运行了一个测试用例,我得到的行为与您的描述不符。
假设我有两个 makefile,...
nuit.mak:
A=17
!include nuit-a.mak
A=5
all: child main
main:
@echo A = $(A)
还有 nuit-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
【讨论】:
我认为问题出在不使用常量。我得到的错误是围绕“循环”定义。以上是关于nmake:如何为包含重新定义宏?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Visual Studio 构建工具 cl.exe 编写 makefile(nmake)