推荐的方法来管理我的c ++库中的版本

时间:2017-09-23 09:35:26

标签: c++ versioning

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

1 个答案:

答案 0 :(得分: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