nmake - 模拟 eval 函数

Posted

技术标签:

【中文标题】nmake - 模拟 eval 函数【英文标题】:nmake - simulating eval function 【发布时间】:2009-04-29 10:36:56 【问题描述】:

我想在 b.mak 生成文件中获取名为 $(MYVAR)_SOME_SUFFIX 的变量的值。 相反,我得到“b.mak(2):致命错误 U1001:语法错误:宏中的非法字符 '$'”

# ---- a.mak ----
all :
    set MYVAR=SOME_PREFIX
    nmake -f b.mak
#--- END ---

# ---- b.mak ----
all:
    @echo $($(MYVAR)_SOME_SUFFIX)
#--- END ---

【问题讨论】:

【参考方案1】:

你可以用inline files做你想做的事。

# ---- piotr1.mak ----

all :
nmake -nologo -f piotr2.mak MYVAR=BBB

#--- END ---


# ---- piotr2.mak ----

AAA_SETTING=17
BBB_SETTING=24

AVAR=$(MYVAR)_SETTING


all:
# create and invoke a temporary cmd file
    @<<myecho.cmd
@echo off
setlocal
REM insert nMAKE  macros into environment of the command
set AAA_SETTING=$(AAA_SETTING)
set BBB_SETTING=$(BBB_SETTING)
REM now echo the value of whichever env var is named by the
REM nmake macro, AVAR.
echo %$(AVAR)%
endlocal
<<

#--- END ---

当我运行 nmake -f piotr1.mak 时,我得到了控制台的预期值:24。

【讨论】:

以上是关于nmake - 模拟 eval 函数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔记--- JSON(对象的创建,访问对象属性等;eval函数;模拟将数据库中的信息打印在页面的表格中)

NMake .PHONY 模拟

NMake .PHONY 模拟

eval()函数与int()函数的区别

eval()函数与int()函数的区别

win32汇编中nmake用法