建议在我的C 库中管理版本的方法
Recommended way to manage versions in my c++ library
我正在编写开源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是一个非常通用的名称。
您遵循诸如此类的适当版本惯例。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 当vector是tje全局变量时,c++中vector的内存管理
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 如何维护资源管理器项目视图中当前可见的项目列表
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 不同的Visual Studio版本中缺少.dll
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 资源管理设计模式
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 使用"Task"函数指针队列定义作业管理器
- 我需要分发哪些版本的可再分发文件
- C++11及更高版本:shared_ptr,用于管理由低级C库提供的系统资源
- 建议在我的C 库中管理版本的方法
- 使用Jenkins、内部版本号和svn修订版管理程序版本
- 如何以最少的重复管理并行和顺序版本代码
- 如何使用Sphinx管理多个版本的文档