Библиотека с закрытым исходным кодом включает ускоренное распространение

Я использую библиотеку с закрытым исходным кодом (от Activ financial), которая включает в себя вместе с их API расширение boost, как некоторые файлы заголовков boost, так и файлы библиотеки boost.

Я также использовать Boost в моей существующей кодовой базе, и мне нужно использовать Activ из моего существующего кода.

Некоторые моменты

  • Я могу инкапсулировать мое использование Activ, чтобы вся часть Activ сводилась к одному написанному мной классу, который не раскрывает любой из Activ ' s headers
  • Этот единственный файл заголовка не использует ничего Boost
  • Таким образом я могу гарантировать, что части Activ моего кода используют файлы Activ Boost HPP, а мой код использует файлы HPP Boost

Мое беспокойство входит в линковку. Как я могу гарантировать, что мой зависимый код Activ связан с Activ Boost, а другой мой код - с моим Boost?

Я использую g ++ сейчас, также буду делать это в VS2008. Раньше у меня это работало в VS2008, но я понятия не имею, как все связано. Я хочу убедиться, что это сделано правильно.

Есть ли способ сделать это без дальнейшей инкапсуляции части Activ в динамическую библиотеку?

Изменить:

Во-первых, мой конечный продукт всегда является исполняемым файлом. Во-вторых, я статически связываюсь, чтобы повысить себя. Библиотека Activ включает как статические, так и динамические версии библиотек объектов Boost, и планирую статически связать.

Я никогда не передаю объекты Boost между кодом, который использует разные версии повышения.

Вопрос в том, как связать один файл cpp или .o с объектами в одной библиотеке файл, а затем убедитесь, что другие файлы .o связаны с идентичными объектами в другом файле библиотеки ? Возможно ли это?

9
задан Scott 1 December 2010 в 16:10
поделиться