如何使用 NMake 设置环境变量



我正在使用 NMake 制作一个制作文件。 我有几个实用程序可以运行将一个文件转换为CPP文件。 该实用程序要求在会话期间设置特定的窗口环境变量。 我可以在生成文件中设置此变量,还是需要创建一个批处理脚本来在调用 NMake 之前设置变量?

使用!if [set ...]技巧:

!if [set myvar=1]
!endif
# Macro values are fine, too, of course:
MYVAL=preprocessed
!if [set myvar=$(MYVAL)]
!endif
# Proof that myvar has really become an env. var. (see the output):
myvar=This is propagated to the env now!
mymacro=(But this isn't, of course.)
# This handy form works, too:
!if [set myA=1] || [set myB=2]
!endif
# But this will *NOT* make myX an env. var., if it hasn't been set yet:
!if [set myX=$(myX)]
!endif
myX=So you'll not see this...
all:
    set my

输出:

D:tmp>nmake -f test.mak
Microsoft (R) Program Maintenance Utility Version 14.21.27702.2
Copyright (C) Microsoft Corporation.  All rights reserved.
        set my
myA=1
myB=2
myvar=This is propagated to the env now!

继承调用nmake时存在的环境变量ENVAR作为同名的nmake宏。ENVVAR如果在生成文件,例如:

ENVAR=newval

则环境变量 ENVAR 假定命令的值newval由生成文件运行。目标:

foo:
    echo "%ENVAR%"

会呼应newval.

但是你不能ENVAR这样的环境变量所以你会必须至少在调用nmake

最新更新