Я использую библиотеку с закрытым исходным кодом (от Activ Financial), которая включает в себя API-интерфейс boost, как некоторые файлы заголовков boost, так и файлы библиотеки boost.
Я также использую Boost в своей существующей кодовой базе, и мне нужно использовать Activ из моего существующего кода.
Некоторые моменты
- Я могу инкапсулировать использование Activ так, чтобы вся часть Activ равнялась одному написанному мной классу, который не раскрывает ни один из заголовков Activ.
- Этот единственный заголовочный файл ничего не использует.
- Таким образом, я могу убедиться, что части моего кода Activ используют файлы Activ Boost HPP, а мой код использует файлы HPP Boost.
Мое беспокойство приходит в связи. Как я могу убедиться, что мой код, зависящий от Activ, связан с Activ Boost, а другой мой код связан с моим Boost?
Сейчас я использую g++, также буду делать это в VS2008. Раньше у меня это работало в VS2008, но я понятия не имею, как все связано. Я хочу попробовать убедиться, что это сделано правильно.
Есть ли способ сделать это без дальнейшей инкапсуляции части Activ в динамическую библиотеку?
Редактировать:
Во-первых, мой конечный продукт всегда представляет собой исполняемый файл. На двоих я статически линкуюсь, чтобы бустить себя. Библиотека Activ включает в себя как статическую, так и динамическую версии библиотек объектов Boost, и я планирую связать ее статически.
Я никогда не передаю объекты Boost между кодами, использующими разные версии Boost.
Вопрос в том, как связать один файл cpp или .o
с объектами в одном файле библиотеки, а затем убедиться, что другие файлы .o
связаны с идентичными объектами в другом файле библиотеки. ? Это возможно?