将 git 信息编译进可执行程序
脚本 build.sh
运行 build.sh 脚本会生成最新的头文件,其包含 git 信息:
1 | #!/bin/sh |
将脚本内容保存为 build.sh 每次提交源码之后,直接运行 build.sh 脚本即会生成最新的头文件,该头文件被编译到程序中,可以看到版本信息包含了最新的版本号,提交时间,编译时间。
模版文件 version.h.tmp
其中有一个模版文件 version.h.tmp,其内容如下:
1 | #ifndef _VERSION_ |
头文件 version.h
运行 build.sh 之后生成的 version.h 文件类似如下:
1 | #ifndef _VERSION_ |
在源文件中直接使用 VERSION 宏就可以啦,在 git 提交版本的时候应该将 version.h.tmp 模版文件添加到版本控制系统中,而脚本生成的 version.h 由于每次 build 都会变化,可以忽略掉。