1. 程式人生 > >linux程式編譯期加入編譯時間和svn版本號

linux程式編譯期加入編譯時間和svn版本號

通常我們在程式開發時會加入版本查詢命令,如:“-v”,此時一般會顯示build版本,以及build日期等,因此如果每次編譯時能自動新增這些資訊的話,就非常方便了。

下面先說說新增時間的方法:

1.最簡單方式,程式碼中直接加入巨集

  1. __TIME__和__DATE__  
通過他們可以直接得到編譯時間,然後可以在程式碼裡列印

2.有點繞不實用,在Makefile中定義一個變數

  1. CT="\"`date '+%Y-%m-%d %H:%M:%S'`"\"  

而後在編譯命令列中加入巨集
  1. -DCT=$(CT)  

接下來可以在程式碼中列印

3.另外還可以用指令碼把日期輸出到一個檔案裡

  1. #!/bin/sh
  2. Version=1.0  
  3. Time=\"$(date '+%Y-%m-%d %H:%M:%S')\"
  4. Output="#define BUILD_TIMER $Time\n#define BUILD_VERSION $Version"
  5. echo "$Output" > version.h  
這個有點太累贅,但寫出來也無妨

再接下來介紹下獲取svn版本的方法:

1.在Makefile中定義一個變數

  1. REV=`svn info | grep Revision | awk '{print $2}'`  
  2. #或者
  3. REV=`svn info | grep Revision | cut -d " "
     -f 2`  
  4. REV=`svnversion ../../`  
而後在編譯命令列中加入巨集
  1. -DREV=$(REV)  

大功告成,程式碼中列印吧