点击左上方蓝色“一口Linux”,选择“设为星标”
第一时间看干货文章
?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式知识点-思维导图-免费获取?【就业】一个可以写到简历的基于Linux物联网综合项目?【就业】找工作简历模版
hligeb1hvjo64047877014.gif
一、软件管理 稍微上点规模的软件开发往往周期都非常长,
中间会产生很多临时版本,
这些临时版本往往会有各种各样的bug,
由于项目参与的人员众多、水平参差不齐,
软件分支众多、功能复杂,
经常会有各种稀奇古怪的事情发生,
经常遇到一个问题就是:某个测试版本测出了问题,
但是研发却发现服务器中没有对应的版本与之对应。
有的公司要求所有bug必须有始有终,
一旦bug无法复现,
这时候测试和开发免不了一阵扯皮,
这影响到绩效啊!!!
所以版本管理非常重要。
现在大多数公司软件都是采用git管理,
对于嵌入式软件,
厂家提供的sdk,往往都有git本地仓库,
嵌入式软件一般规模都不大,
所以公司对软件版本管理往往并不会太严格,
很多嵌入式软件工程师都没能养成良好的软件管理习惯。
本文主要讲解如何在编译的时候就给软件自动添加更新软件版本的功能,
程序运行的开始就将版本打印出来,
配合git,更方便的定位软件版本问题。
二、软件版本号 公司的软件版本号往往都比较复杂,
本文为便于读者理解,将版本号的定义精简如下:
仅仅打印版本发布的时间,
yvw5psa0tog64047877114.png
后续彭老师会单独再写一篇,
一个比较经典的版本号管理实例文章,
有兴趣的老铁可以关注下彭老师的公众号。
三、原理 我们可以定义一个头文件sw_version.h专门存放版本信息的宏,
#define SW_VERSION “2024-09-09-7”
主程序包含该头文件,
并在程序运行的开头位置,打印改宏。
编译 过程中,编译脚本mk.sh自动将当前时间等信息更新到头文件sw_version.h
这样我们编译出的可执行程序app就自带了最新的版本信息。 |