如何在Keil IDE中实现应用程序构建版本的自动生成?
在Keil IDE中自动生成构建版本的配置方法
方法一:预构建脚本自动递增构建号
- 创建版本头文件(比如
version.h),定义基础版本信息:#ifndef VERSION_H #define VERSION_H #define VERSION_MAJOR 1 // 主版本号,手动更新 #define VERSION_MINOR 0 // 次版本号,手动更新 #define BUILD_NUMBER 0 // 构建号,脚本自动递增 #define BUILD_DATE __DATE__// 编译日期,Keil内置宏 #define BUILD_TIME __TIME__// 编译时间,Keil内置宏 #endif // VERSION_H - 编写批处理脚本
update_build_num.bat,实现构建号自增:@echo off setlocal enabledelayedexpansion set "header_file=version.h" set "temp_file=temp_version.h" for /f "tokens=*" %%a in (%header_file%) do ( set "line=%%a" if "!line:~0,21!"=="#define BUILD_NUMBER " ( set "build_num=!line:~21!" set /a build_num+=1 echo #define BUILD_NUMBER !build_num!>>%temp_file% ) else ( echo !line!>>%temp_file% ) ) move /y %temp_file% %header_file% >nul - 配置Keil预构建命令:
- 打开工程,点击工具栏的
Options for Target(魔法棒图标) - 切换到
User标签页 - 在
Before Build/Rebuild区域勾选Run #1,填入脚本的绝对路径(比如D:\YourProject\update_build_num.bat) - 确认脚本和
version.h路径正确,Keil有权限访问执行
- 打开工程,点击工具栏的
方法二:用Keil内置宏生成时间戳版本
- 无需额外脚本,直接在代码中使用Keil支持的内置宏生成版本字符串:
#define APP_FULL_VERSION "v1.0 built on " __DATE__ " at " __TIME__ - 每次构建时,
__DATE__和__TIME__会自动替换为当前编译的日期和时间,可在程序中打印该字符串或存入Flash用于版本查询
方法三:关联Git版本(适用于Git管理的项目)
- 编写脚本
update_git_version.bat,读取Git最新提交的短哈希:@echo off for /f "tokens=*" %%i in ('git rev-parse --short HEAD') do set GIT_HASH=%%i echo #ifndef GIT_VERSION_H>git_version.h echo #define GIT_VERSION_H>>git_version.h echo #define GIT_COMMIT_HASH "%GIT_HASH%">>git_version.h echo #endif // GIT_VERSION_H>>git_version.h - 在Keil的
Before Build/Rebuild中配置执行该脚本,然后在version.h中引入git_version.h,实现构建版本与Git提交记录同步,方便追溯版本对应代码
内容的提问来源于stack exchange,提问作者Mohammad Ali Nekouie
相关产品推荐
相关产品推荐

