-1

我之前的帖子中,我弄清楚了为什么该命令

build /nmake "USER_C_FLAGS=/DMyVersion=3"

不将定义MyVersion与值3相关联。MSDN 说——

使用 /Dname= 编译会导致符号没有关联的值。因此,虽然该符号仍可用于有条件地编译代码,但该符号将不会评估为空。例如,在前面的示例程序中,使用 /DTEST= 进行编译将导致编译器错误。此行为类似于使用带有或不带有值的#define。

我有一个在运行时设置的环境变量,我需要传递该环境。Visual Studio 2005 Makefile Project的变量。现在的问题是,我怎样才能通过环境。运行时构建环境的变量?一旦通过,我应该能够像 -

#define VERSION 11

#ifdef BUILD_VERSION       // How to get this macro to the current env. ?
   #undef VERSION
   #define VERSION BUILD_VERSION
#endif

#define FILE_VERSION VERSION

我没有从nmake文档中看到任何传递 env 的标志。变量。任何想法都受到高度赞赏。

4

1 回答 1

2

MSDN 将为 nmake Environment-Variable Macros回答这个问题。

请注意:“使用 /E 选项使从环境变量继承的宏覆盖 makefile 中具有相同名称的任何宏。”

于 2012-06-14T21:48:32.027 回答