封闭源库包括boost分配

Sco*_*ott 9 c++ boost multiple-versions

我正在使用一个封闭的源库(由Activ financial提供),其中包括一个boost分配,包括一些boost头文件和boost库文件.

我也在现有的代码库中使用Boost,我需要在现有代码中使用Activ.

有些观点

  • 我可以封装我对Activ的使用,以便整个Activ部分相当于我编写的一个类,它不暴露任何Activ的头文件
  • 这个单头文件不使用任何提升任何东西
  • 通过这种方式,我可以确保我的代码的Activ部分使用Activ的Boost HPP文件,我的代码使用我的Boost的HPP文件

我担心链接.如何确保我的Activ依赖代码链接到Activ的Boost,而我的其他代码链接到我的Boost?

我现在正在使用g ++,也将在VS2008中使用它.我之前在VS2008工作过,但我不知道一切都是如何联系起来的.我想尝试确保它正确完成.

有没有办法在没有进一步将Activ部分封装在动态库中的情况下执行此操作?

编辑:

首先,我的最终产品总是一个可执行文件.对于两个人,我静静地联系以提升自己.Activ库包括Boost对象库的静态和动态版本,我打算静态链接它.

我从不在使用不同boost版本的代码之间传递Boost对象.

问题是,如何将一个cpp或.o文件链接到一个库文件中的对象,然后确保其他.o文件链接到另一个库文件中的相同对象?这可能吗?

Yan*_*min 3

该库是否动态或静态链接到 Boost?如果静态链接,库是否公开 DLL 中的符号(declspec 导出)?

如果该库是静态链接的并且符号未公开,并且您没有来回传递任何 Boost 数据结构(smart_ptr、线程等),则您可以安全地在 DLL 中使用您自己版本的 Boost 库。