将宏传递给nmake

时间:2012-06-12 21:13:01

标签: c++ msbuild nmake wdk makefile-project

my earlier post,我找出了为什么命令

build /nmake "USER_C_FLAGS=/DMyVersion=3"

不会将定义MyVersion与值 3 相关联。 MSDN says that -

  

使用/ Dname =进行编译会导致符号没有关联   值。因此,虽然符号仍可用于有条件地编译   代码,否则该符号将评估为空。例如,在   上一个示例程序,用/ DTEST =编译将导致a   编译器错误。此行为类似于使用#define和   没有价值。

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

#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。变量。任何想法都受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

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

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