在程序中获取编译时SVN的版本号

程序中一般会加入程序的版本信息,用“-v”来查看。

有时候还会加入编译时间,这个比较好实现,使用__TIME__和__DATE__宏就可以了,程序的大版本号一般都是手动写的。

出于某种需要,我希望在程序中获取到编译时svn的版本号,查了写资料,有说用svn prop来做的,也有说用svn hook来做的,我觉得这个太复杂,而且是在每次提交都做修改,没必要。

于是乎,我想到也用宏来做。

gcc里可以用“-D”来定义宏,用它来定义一个宏,值为svn版本号就好了。

-DSVN=xxxx

xxxx怎么获取呢?svn info里就有了,弄出来就行了

svn info | grep Revision | cut -d " " -f 2

然后

-DSVN=·svn info | grep Revision | cut -d " " -f 2·

把它加到Makefile.am里去,搞定。

1 thought on “在程序中获取编译时SVN的版本号

  1. 鱼雷

    啊, 这个好…
    我们的项目刚改过版本控制, 从svn迁移到hg上, 不过做法只是加一个记版本号的文件, 每次编完了写一下.

    回复

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据