nmake:批处理文件可以作为 make 命令块的一部分运行,影响 nmake.exe 进程的环境吗?
Posted
技术标签:
【中文标题】nmake:批处理文件可以作为 make 命令块的一部分运行,影响 nmake.exe 进程的环境吗?【英文标题】:nmake: can a batch file run as part of a make command block, affect the environment of the nmake.exe process? 【发布时间】:2010-05-10 21:06:16 【问题描述】:如果我这样做,我认为在 nmake 中:
example :
set value=77
echo %%value%%
结果会在控制台显示 77。
我有没有办法调用会影响 nmake.exe 进程环境的 .cmd 或 .bat 文件?假设我将语句set value=77
放在一个名为“setvalue.cmd”的文件中。然后把makefile改成这样:
example :
setvalue
echo %%value%%
我明白了:
%value%
或者,如果有一种方法可以在命令块中设置宏,那也可以。或者,一种从批处理文件设置宏值的方法,甚至在命令块之外。
【问题讨论】:
你不能直接影响环境,但是你可以得到返回码和传递参数给批处理文件,所以它就像调用一个外部程序:-)。 好的,返回值仅被解释为 make 中的错误代码,因此您需要创建一个文件或其他东西来共享值。 【参考方案1】:您可以在 makefile 预处理期间创建一个 nmake sn-p,并将其读入。假设 batch.cmd
输出有效的 nmake 语法,则
!if [batch.cmd >makefile.auto]
!error *** Could not create makefile.auto
!endif
!include makefile.auto
您应该确保batch.cmd
正确设置%errorlevel%
(例如exit /b 22
)。
makefile.auto
可以包含任何内容,但您可能想要value=77
之类的内容。几点:
value
($(value)
)
如有必要,您可以将参数传递给batch.cmd
([batch.cmd $(OBJECTS) >makefile.auto]
)
【讨论】:
【参考方案2】:不,我不这么认为。
【讨论】:
以上是关于nmake:批处理文件可以作为 make 命令块的一部分运行,影响 nmake.exe 进程的环境吗?的主要内容,如果未能解决你的问题,请参考以下文章