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:如何为包含重新定义宏?的主要内容,如果未能解决你的问题,请参考以下文章

重新排序包含目录如何解决宏重新定义问题?

如何为 C++ 智能感知引擎定义宏?

如何为 Visual Studio 构建工具 cl.exe 编写 makefile(nmake)

如何为 UIAlertViewController 定义宏?

nmake 警告 U4006:特殊宏未定义:'$@"'

如何为 nvcc 添加预定义宏?