我正在使用一个闭源库(由Activ Financial提供),其中包含他们API的boost分发,包括一些boost头文件和boost库文件。
我还在我的现有代码库中使用Boost,并且需要从我的现有代码中使用Activ。
一些要点:
- 我可以封装我的Activ使用,以便整个Activ部分总计只有一个我编写的类,不会暴露任何Activ的头文件
- 这个单独的头文件不使用任何boost内容
- 通过这种方式,我可以确保我的代码中的Activ部分使用Activ的Boost HPP文件,而我的代码使用我的Boost的HPP文件
我的担心在于链接。如何确保我的Activ相关代码链接到Activ的Boost,而我的其他代码链接到我的Boost?
我现在使用g++,也会在VS2008中进行此操作。我之前已经在VS2008中做到了,但我不知道所有东西是如何链接的。我想尝试确保它正确地完成。
有没有办法在不进一步将Activ部分封装为动态库的情况下完成呢?
编辑:
首先,我的最终产品始终是可执行文件。其次,我自己静态链接到boost。Activ库包括Boost对象库的静态和动态版本,并且我打算静态链接它。
我从不在使用不同boost版本的代码之间传递Boost对象。
问题是,如何将一个cpp或.o
文件链接到一个库文件中的对象,然后确保其他.o
文件链接到另一个库文件中的相同对象?这可能吗?
-I
指令编译每个cpp文件。)我想得对吗? - Scott