从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。变量。任何想法都受到高度赞赏。
答案 0 :(得分:2)
MSDN将为nmake Environment-Variable Macros回答此问题。
请注意:“使用/ E选项可以使从环境变量继承的宏覆盖makefile中具有相同名称的任何宏。”