建议在我的C 库中管理版本的方法

Recommended way to manage versions in my c++ library

本文关键字:管理 版本 方法 我的      更新时间:2023-10-16

我正在编写开源C 库,并希望管理其版本。例如:标记每个发行版,尚未发布的标签版本等。我希望下载预编译的库的人知道他们使用的版本,并且可以并行管理多个版本的库。该库仅作为静态库(而不是动态)编译。我不使用CMAKE(我知道支持版本标签)。推荐的方法是什么?我应该添加一个包含当前版本的H文件吗?应该包括什么?也许还有其他想法?

个人,我喜欢为我编写的每个库添加一个配置标头文件。这使我的图书馆的用户可以轻松理解可能的配置并根据其需求进行调整。

关于版本管理,我通常在该文件中添加三个版本变量:

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

这允许用户轻松检查版本号:

  • 下载库时
  • 编译时使用静态宏
  • 在运行时动态

我会建议这样做:

  • 您在库中添加/删除/defectate的任何功能不应要求用户以数字测试版本,而应添加#Define和/或指定该选项是否打开的方法和/或方法或可选,例如:

    #define AWESOME_LIBRARY_SUPPORTS_CACHING
                   -- OR/AND --
    static bool isCachingSupported()
    
  • 您在库中包含的任何代码都应使用专有名称空间包装,以确保没有命名碰撞,因为version_major是一个非常通用的名称。

  • 您遵循诸如此类的适当版本惯例。