封闭源库包括boost分配

时间:2010-12-01 06:32:51

标签: 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对象。

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

1 个答案:

答案 0 :(得分:3)

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

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