我正在使用一个封闭的源库(由Activ financial提供),其中包含一个boost分配,包括一些boost头文件和boost库文件。
我也在现有代码库中使用Boost,我需要在现有代码中使用Activ。
一些要点
我担心链接。如何确保我的Activ依赖代码链接到Activ的Boost,而我的其他代码链接到我的Boost?
我现在正在使用g ++,也将在VS2008中执行此操作。我之前在VS2008工作过,但我不知道一切都是如何联系起来的。我想尝试确保它正确完成。
如果没有进一步将Activ部分封装在动态库中,有没有办法做到这一点?
编辑:
首先,我的最终产品始终是可执行文件。对于两个人,我静静地联系以提升自己。 Activ库包括Boost对象库的静态和动态版本,我打算静态链接它。
我从不在使用不同增强版本的代码之间传递Boost对象。
问题是,如何将一个cpp或.o
文件链接到一个库文件中的对象,然后确保其他.o
个文件链接到相同的对象在另一个库文件中?这可能吗?
答案 0 :(得分:3)
库是动态还是静态链接到Boost?如果静态链接,库是否公开DLL中的符号(declspec export)?
如果库是静态链接的并且符号未公开,和您不会来回传递任何Boost数据结构(smart_ptr,线程等),您可以安全地使用你自己的DLL版本的Boost库。