我向用户提供一个带有头文件的库。
我经常发布新版本、次要版本和主要版本。
有时,用户仍然使用旧版本的头文件,并且以某种方式他仍然可以将共享库链接到它。
更改是在内部和 API 上进行的,但在他似乎不使用的东西上,因此我相信链接器仍然认为它是有效的。
如何进行版本控制才能 100% 确定用户将在库中使用正确的头文件?
我不能100%确定问题出在这个,但这只是一个问题。
其实很简单。
namespace mylibrary_v1_17 {
// all your definitions go here
}
namespace mylibrary = mylibrary_v1_17;
您对库进行了不兼容的更改,更改了版本号,然后就完成了。最终用户仅使用
namespace mylibrary
,因此他们不会注意到任何更改。
您是否想要这样做是另一个问题。人们通常应该以向后兼容为目标。不要删除旧的 API,而是用新的 API 重写它们。