我想在我们的Jenkins系统定义的两个环境变量(BUILD_NUMBER和NODE_NAME)中编译,以便保存这些编译时间值,然后在我们的程序运行时访问这些保存的值(无论用户是什么目前已将BUILD_NUMBER和NODE_NAME设置为。)
使用Visual Studio 2008可以实现吗?如果我能完全在我们的代码中完成它,并且不必修改编译系统来传递任何东西,那将是很好的。
答案 0 :(得分:5)
您可以通过添加预生成步骤来执行批处理文件,其中包括
>jenkins.h echo #define BUILD_NUMBER %BUILD_NUMBER%
然后从您的来源#include "jenkins.h"
,您可以立即访问在编译时烘焙的宏BUILD_NUMBER
。
答案 1 :(得分:2)
您可以将变量设为全局变量并使用getenv
来检索它们:
const char* buildNumber = getenv("BUILD_NUMBER");
const char* nodeName = getenv("NODE_NAME");
虽然这不是在编译时完成的,但如果你只在运行时使用这些变量,那就不重要了。
编辑:
您可以将BUILD_NUMBER="$(BUILD_NUMBER)"
添加到项目属性中的预处理程序指令中。