我在使用nmake
Win7 x64 构建环境构建驱动程序时遇到问题。我正在定义一个预处理器变量并使用 -
build /nmake "USER_C_FLAGS=/DMyVersion=3"
构建日志是 -
...
/DMyVersion=3
/typedil-
/wd4603
/wd4627
....
因此,我清楚地将变量视为编译器选项的一部分。现在在标题文件中,我做
#define otherVersion 10
#ifdef MyVersion
#undef otherVersion
#define otherVersion MyVersion
#endif
#define FileVersion otherVersion
问题FileVersion
始终是10,无论MyVersion
定义是否通过并存在于环境中。为了测试,发生了什么,我做了 -
#ifdef MyVersion
#error MyVersion is present in the environment.
#endif
我看到正在打印的声明。但是,尽管环境中存在预处理器指令,为什么otherVersion
总是10呢?为什么它不采用通过命令行选项传递的值3 ?