我想在 nmake 中如果我这样做:
example :
set value=77
echo %%value%%
Run Code Online (Sandbox Code Playgroud)
结果将在控制台上显示 77。
有没有办法让我调用 .cmd 或 .bat 文件来影响 nmake.exe 进程的环境?假设我将该语句放在set value=77名为“setvalue.cmd”的文件中。然后将 makefile 更改为:
example :
setvalue
echo %%value%%
Run Code Online (Sandbox Code Playgroud)
我得到:
%value%
Run Code Online (Sandbox Code Playgroud)
或者,如果有一种方法可以在命令块中设置宏,那也可以。或者,一种从批处理文件设置宏值的方法,甚至在命令块之外也是如此。
您可以在 makefile 预处理期间创建一个 nmake 片段,并将其读入。假设batch.cmd输出有效的 nmake 语法,则
!if [batch.cmd >makefile.auto]
!error *** Could not create makefile.auto
!endif
!include makefile.auto
Run Code Online (Sandbox Code Playgroud)
您应该确保batch.cmd设置%errorlevel%适当(例如,exit /b 22)。
makefile.auto可以包含任何东西,但你可能想要像value=77. 有几点:
value使用 nmake 语法取消引用( $(value))batch.cmd如果需要,您可以将参数传递给( [batch.cmd $(OBJECTS) >makefile.auto])