2017-09-23 80 views
0

我正在寫一個開源的c + +庫,並希望管理其版本。例如:爲每個版本添加標籤,尚未發佈的標籤版本等。我希望下載預編譯庫的人員知道他們正在使用的版本,並可能同時管理多個版本的庫。 這個庫只能編譯爲靜態庫(而不是動態的)。 我沒有使用cmake(我知道它支持版本標籤)。 建議如何做到這一點? 我應該添加一個包含當前版本的H文件嗎?它應該包括什麼?也許還有其他想法?推薦的方法來管理我的c + +庫中的版本

+1

https://help.github.com/articles/creating-releases/ –

+0

謝謝!但是這篇文章正在談論圖書館之外的版本管理(在github上)。我感興趣的是我可以在庫中嵌入的東西,以便下載它的人可以查詢版本 – fx23

+0

大多數項目只是在頭文件中向#define中寫入版本號。 –

回答

3

個人而言,我喜歡爲我寫的每個庫添加一個配置頭文件。 這使我的圖書館用戶可以輕鬆瞭解可能的配置並根據需要進行調整。

關於版本管理,我通常會添加三個版本變量,該文件:

static const unsigned VERSION_MAJOR = x; 
static const unsigned VERSION_MINOR = y; 
static const unsigned VERSION_REVISION = z; 

這使得用戶可以輕鬆地檢查版本號:

  • 在下載庫
  • 使用靜態宏編譯時
  • 運行期間動態運行

我會建議雖然那:

  • 任何特徵添加/刪除/棄用您的圖書館不應該要求用戶數字測試版本,而是你應該添加一個#define和/或它指定該選項是否開啓,關閉或可選的方法,如:

    #define AWESOME_LIBRARY_SUPPORTS_CACHING 
           -- OR/AND -- 
    static bool isCachingSupported() 
    
  • 你在你的庫包含的任何代碼應該使用正確的命名空間,以確保沒有命名的碰撞,因爲VERSION_MAJOR包裹是一個非常普遍的名字。

  • 您遵循適當的版本控制約定,如thesethese

相關問題