从我之前的帖子中,我弄清楚了为什么该命令
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 的标志。变量。任何想法都受到高度赞赏。