程序中一般會加入程序的版本信息,用“-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裏去,搞定。