Visual Studio 2008环境变量在编译时使用

Visual Studio 2008 Environment Variable Use at Compile Time

本文关键字:编译 Studio 2008 环境变量 Visual      更新时间:2023-10-16

我想在Jenkins系统定义的两个环境变量(BUILD_NUMBER和NODE_NAME)中编译,以便保存这些编译时值,然后在运行程序时访问这些保存的值(无论用户当前将BUILD_UMBER和NODE_NAME设置为什么)

使用Visual Studio 2008可以做到这一点吗?如果我能完全在我们的代码中完成这一点,并且不必修改编译系统来传递任何东西,那就太好了。

实现这一点的一种方法是添加一个预构建步骤,该步骤使用类似的东西执行批处理文件

>jenkins.h echo #define BUILD_NUMBER %BUILD_NUMBER%

然后从您的源代码#include "jenkins.h",并可以立即访问在编译时烘焙的宏BUILD_NUMBER

您可以将变量设为全局变量,并使用getenv检索它们:

const char* buildNumber = getenv("BUILD_NUMBER");
const char* nodeName = getenv("NODE_NAME");

不过,这不是在编译时完成的,但如果您只在运行时使用变量,那就无关紧要了。

编辑:

您可以在项目属性中将BUILD_NUMBER="$(BUILD_NUMBER)"添加到预处理器指令中。