如何防止使用不匹配的头文件和库?

问题描述 投票:0回答:1

我向用户提供一个带有头文件的库。

我经常发布新版本、次要版本和主要版本。

有时,用户仍然使用旧版本的头文件,并且以某种方式他仍然可以将共享库链接到它。

更改是在内部和 API 上进行的,但在他似乎不使用的东西上,因此我相信链接器仍然认为它是有效的。

如何进行版本控制才能 100% 确定用户将在库中使用正确的头文件?

我不能100%确定问题出在这个,但这只是一个问题。

c++ shared-libraries
1个回答
0
投票

其实很简单。

namespace mylibrary_v1_17 {
  // all your definitions go here
}

namespace mylibrary = mylibrary_v1_17;

您对库进行了不兼容的更改,更改了版本号,然后就完成了。最终用户仅使用

namespace mylibrary
,因此他们不会注意到任何更改。

您是否想要这样做是另一个问题。人们通常应该以向后兼容为目标。不要删除旧的 API,而是用新的 API 重写它们。

© www.soinside.com 2019 - 2024. All rights reserved.