将宏传递给 nmake
Posted
技术标签:
【中文标题】将宏传递给 nmake【英文标题】:Pass macro to nmake 【发布时间】:2012-06-12 21:13:01 【问题描述】:从my earlier post,我明白了为什么这个命令
build /nmake "USER_C_FLAGS=/DMyVersion=3"
不将定义 MyVersion
与值 3 相关联。 MSDN says that-
使用 /Dname= 编译会导致符号没有关联的 价值。所以,虽然符号仍然可以用于有条件地编译 代码,否则该符号将评估为无。例如,在 上一个示例程序,使用 /DTEST= 编译将导致 编译器错误。此行为类似于将 #define 与 or 一起使用 没有值。
我有一个在运行时设置的环境变量,我需要传递该环境。 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。变量。任何想法都受到高度赞赏。
【问题讨论】:
我认为您引用的手册部分是用于定义没有内容的宏,即文字“/DMACRO=
”,与“/DMACRO
”相同。你的例子应该有效。也许你可以发布你的makefile的相关部分?
【参考方案1】:
MSDN 将为 nmake Environment-Variable Macros 回答此问题。
注意这里:“使用 /E 选项使从环境变量继承的宏覆盖 makefile 中任何同名的宏。”
【讨论】:
以上是关于将宏传递给 nmake的主要内容,如果未能解决你的问题,请参考以下文章