MDK自动生成版本号

MDK编译工程时自动生成一个文件版本号,格式为 “V x.x.x Build 2021/01/13 11:08:41 by 计算机名”

我的操作希望对读到的小伙伴有帮助!

文件结构是这样的
\Test
|->.svn
|->MDK_proj
-----|->Test.uvprojx
-----|->GetVersionNumber
----------|->svnreion.bat
GetVersionNumber 文件夹是用于存储生成版本号及存储版本号文件的文件夹
svnreion.bat 用于生成版本号

在svnreion.bat的代码如下:

cd .\GetVersionNumber\
:: .\GetVersionNumber\ 这个路径是相对于 “*.uvprojx” 的路径
del svn_revision_template.h /s
del svn_revision.h /s
@echo off
set n=%computername%echo #ifndef _SVN_REVISION_H_ > svn_revision_template.h
echo #define _SVN_REVISION_H_ >> svn_revision_template.h
::对应的大版本号 \r\n
echo //对应的大版本号 >> svn_revision_template.h
set Text7=#define FIRST_VERSION "1"
echo %Text7% >> svn_revision_template.h
::对应的软件版本号
echo //对应的软件版本号 >> svn_revision_template.h
set Text8=#define FIRMWARE_VERSION "0"
echo %Text8% >> svn_revision_template.h
::对应的SVN版本号
echo //对应的SVN版本号 >> svn_revision_template.h
set Text5=#define SVN_VERSION "$WCREV$"
echo %Text5% >> svn_revision_template.h
::根据规则生成的最终版本号
echo //根据规则生成的最终版本号 >> svn_revision_template.h
echo #define User_VERSION FIRST_VERSION"."FIRMWARE_VERSION"."SVN_VERSION >> svn_revision_template.hecho #define AMG_LIB_VER_SVN_VERSION "V"User_VERSION" Build $WCNOW$ by %n%" >> svn_revision_template.hecho #endif // !_SVN_REISION_H_ >> svn_revision_template.h
subwcrev.exe .\ .\svn_revision_template.h  .\svn_revision.h
::pause

这*.bat文件主要是干了两件事
1, 生成了“svn_revision_template.h”文件。这个文件是有一个模板文件,
2, 调用“subwcrev.exe” 根据“svn_revision_template.h”模板文件生成“svn_revision.h”
也就是“subwcrev.exe .\ .\svn_revision_template.h .\svn_revision.h”这行命令。

在MDK的工程设置如下图:

这个的意思是在编译前,先运行这个*.bat文件。

运行后生成了有一个“svn_revision.h”文件内容如下:

#ifndef _SVN_REVISION_H_
#define _SVN_REVISION_H_
//对应的 大版本号
#define FIRST_VERSION "1"
//对应的软件版本号
#define FIRMWARE_VERSION "0"
//对应的SVN版本号
#define SVN_VERSION "1"
//根据规则生成的最终版本号
#define User_VERSION FIRST_VERSION"."FIRMWARE_VERSION"."SVN_VERSION
#define AMG_LIB_VER_SVN_VERSION "V"User_VERSION" Build 2021/01/13 12:37:12 by Freesoul"
#endif // !_SVN_REISION_H_

#宏定义 AMG_LIB_VER_SVN_VERSION 就是版本信息字符串。

MDK自动生成版本号相关推荐

  1. Dotnet程序集自动生成版本号

    一. 版本号自动生成方法 只需把 AssemblyInfo.cs文件中的[assembly: AssemblyVersion("1.0.0.0")]改成[assembly: Ass ...

  2. 修改AssemblyInfo.cs自动生成版本号

    一. 版本号自动生成方法 1.把 AssemblyInfo.cs文件中的[assembly:AssemblyVersion("1.0.0.0")]改成[assembly:Assem ...

  3. c语言自动生成版本号,单片机C程序自动产生并增加版本号

    工作原理:很简单地说,运行Version.exe生成一个"version.h"头文件,文件的内容如下: #ifndef VERSION_H_INCLUDED #define VER ...

  4. 前端自动生成Change Log的实现

    对文章的作者,我的同事黛妮表示感谢.我们一起完成了这篇文章. 这里附上原文的地址:https://www.yuque.com/rocket/rocket_doc/pyo2i1 开发目的 快速可交互的搭 ...

  5. VC自动生成软件版本号

    VC自动生成软件版本号 flyfish 目的: 软件的版本有主版本号.子版本号.修正版本号.编译版本号 其中编译版本号与SVN服务器的版本号(Revision)自动同步. 环境 需要在本机安装Tort ...

  6. Android Studio生成APK自动追加版本号 自定义apk名称 指定签名证书文件

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50538148   文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...

  7. 自动生成Makefile的全过程详解

    automake/autoconf入门 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefil ...

  8. php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...

    一.安装swagger 1.首先需要有composer,没有的自行百度安装 2.下载swagger,打开网站https://packagist.org/packages/zircote/swagger ...

  9. IEDA中JavaDoc的自动生成、手动生成,以及生成html文档

    1 自动生成类的注释 JavaDoc就是java特有的一种注释. 1.1 配置 首先,IDEA点击File-->Settings 然后Editor-->File and Code Temp ...

最新文章

  1. 在Ubuntu18.04上安装opencv 3.4.1
  2. MySQL 的存储引擎
  3. 基于PYQT编写一个人脸识别软件(2)
  4. eclipse打开过的工程信息保存路径
  5. Python多继承mro示例
  6. php调用不存在的方法,php如何调用不存在的方法
  7. pyaudio usb playback_5.5寸触控屏IP电话会议USB全向麦克风NK-OAM600U_影视工业网
  8. 组图:2007最震撼人心的“史上最牛”事件
  9. 一个scrapy框架的爬虫(爬取京东图书)
  10. 斐波那契数列:一道100年后羊圈羊的数量算法题
  11. MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
  12. python的运行方式_Python的两种运行方式
  13. 网页img 居中办法
  14. echarts+vue3实战(1)
  15. 微信小程序关于wx:key的警告
  16. 洛谷_P2655 2038年问题(尚贤)
  17. 深度强化学习+启发人类的决策智能,专访一家有愿景的中国企业「启元世界」... 1
  18. Echarts饼图,环形图,鼠标触碰后取消默认放大效果
  19. 为什么电源纹波那么大?
  20. OpenCV学习笔记-边缘保留滤波EPF

热门文章

  1. win10下装黑苹果双系统_电脑笔记本win10系统重装一体机W7苹果mac双系统远程维修8虚拟机...
  2. 今夏成为小葫芦娃的最后机会!
  3. acw - 4262.空调
  4. 我们都在成全别人眼中的自己
  5. JetPack--Paging2
  6. 劝大家别去国企制造业干IT,软件多数据乱,报表开发完全没法做
  7. 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(七)Ubuntu开发环境配置
  8. 博客居 python_python天文资源索引
  9. c#:mvc单选按钮(性别)
  10. 统计学之正态分布检验