加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 将预处理器变量传递给nmake构建环境

发布时间:2020-12-16 07:00:17 所属栏目:百科 来源:网络整理
导读:我在Win7 x64构建环境中使用nmake构建驱动程序时遇到问题.我正在定义一个预处理器变量并通过命令行传递它 – build /nmake "USER_C_FLAGS=/DMyVersion=3" 构建日志是 – .../DMyVersion=3/typedil- /wd4603/wd4627.... 所以,我清楚地将变量视为编译器选项的
我在Win7 x64构建环境中使用nmake构建驱动程序时遇到问题.我正在定义一个预处理器变量并通过命令行传递它 –

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?

解决方法

我不确定,如果这适合你,但有些人确实试图使用msbuild实现完全相同.他们必须调整项目文件以将其定义“导入”构建过程.看看 MSBuild.exe not accepting either /p:DefineConstants nor /p:PreprocessorDefinitions

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读