作为Jenkins构建的一部分,Jenkins有许多环境变量。其中两个是BUILD_NUMBER和BRANCH_NAME。我们将这些添加到预处理器定义的符号:
现在可以在编译时访问这些环境变量:
#define APPLICATION_VERSION_MAJOR (1)
#define APPLICATION_VERSION_MINOR (1)
#define APPLICATION_VERSION_BUILD (BUILD_NUMBER)
#define GIT_BRANCH_NAME (BRANCH_NAME)
使用BUILD_NUMBER很好,这是一个数字,但在尝试使用BRANCH_NAME时出错。例如:
debug(DEBUG_LEVEL_INFO, "software version %d.%d.%d branch %s", APPLICATION_VERSION_MAJOR, APPLICATION_VERSION_MINOR, APPLICATION_VERSION_BUILD, GIT_BRANCH_NAME);
我收到错误:
Error[Pe020]: identifier "localbuild" is undefined D:\repo\source\state_machine.c 284
环境变量BRANCH_NAME设置为“localbuild”,编译器获取正确的值。但是,我如何在我的代码中使用它?它适用于数字,但我如何为字符串做同样的事情?
答案 0 :(得分:1)
考虑使用:
#define BRANCH_NAME localbuild
如果你有这些定义加上:
-DBRANCH_NAME=localbuild
(可能在{1}}之类的命令行上设置 - 通常,您无法从C预处理器访问环境变量),然后使用它:
printf("Git branch name [%s]\n", GIT_BRANCH_NAME);
输出如下:
printf("Git branch name [%s]\n", "localbuild");
答案 1 :(得分:0)
简单的回答,必须像这样添加一个字符串环境变量: BRANCH_NAME = “$ _ BRANCH_NAME _ $”