gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:13 27 4
gpt4 key购买 nike

我在 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

关于c++ - 将预处理器变量传递给 nmake 构建环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988501/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com