在visualc++中根据文件内容设置预处理器定义

Set preprocessor definitions from file content in Visual C++

本文关键字:设置 预处理 处理器 定义 文件 visualc++      更新时间:2023-10-16

我有一个包含项目版本号的项目文件。我必须使这个文件的内容在我的代码中作为预处理器定义可用。

我需要的是以某种方式将该值作为/D参数从文件传递给编译器。

我尝试添加预处理器定义

VERSION=$(Version)

并在预构建步骤中设置Version环境变量,但我没有找到执行后者的方法,所以我被卡住了。

作为一种解决方法,可以创建一个预构建步骤,该步骤调用一个脚本,该脚本读取文件并在头文件中生成宏定义。然后这个头文件可以包含在我的项目中。

但是我不觉得这个解决方案很好,我希望有一个更好的。

作为生成.h文件的另一种选择,您还可以生成.vsprops(属性表)文件。.vsprops文件对于.vcproj文件就像。h文件对于.cpp文件一样。特别是,您可以在属性表中定义/D命令行选项。这就是/D UNICODE通常是如何定义的,通过一个默认的属性表。

额外的好处是,您还可以为链接器设置/VERSION标志,这是您不能通过头文件做的。