我有一个需要使用某个闭源 C++ API 的应用程序。这个 API 与一些 Boost、二进制库文件和所有文件一起分发。我喜欢在自己的代码中使用 Boost。我不能只使用他们的 Boost 版本,因为他们没有分发我需要的所有 Boost 部分。我应该如何进行?目标平台是 linux,最终也是 Windows。
- 我不会跨 API 边界传递 Boost 对象。
- 我可以将内容编译为目标文件,以便我的代码使用我的boost 标头,而 API 的代码使用它的Boost 标头。这部分看起来很简单。
- 我没有得到:如何将我的代码链接到 我的Boost 库文件,以及 API 的代码到它的Boost 库文件。我是否需要围绕 API 编译我自己的包装器 - 一个标头不包含 Boost 的包装器 - 到动态库?(这是我能想到的进行链接的唯一方法。API 的 Boost 库文件中的符号应该与我的 Boost 库文件中的符号相同。我必须分两个阶段进行链接,不是吗?唯一的方法我可以通过制作一个动态库来链接程序的一部分,而不是其余的,不是吗?)