boost распространяется с библиотекой с закрытым исходным кодом

У меня есть приложение, которое должно использовать определенный API C ++ с закрытым исходным кодом. Этот API распространяется с некоторыми битами Boost, файлами двоичных библиотек и всем остальным. Мне нравится использовать Boost в моем собственном коде. Я не могу просто использовать их версию Boost, поскольку они не распространяли все необходимые мне части Boost. Как мне продолжить? Целевая платформа - Linux, а в конечном итоге и Windows.

  • Я не буду передавать объекты Boost через границу API.
  • Я могу компилировать объекты в объектные файлы, чтобы мой код использовал мой заголовки повышения, а код API использовал свои заголовки повышения. Эта часть кажется простой.
  • Чего я не понимаю: как связать мой код с моими файлами библиотеки Boost, а код API - с его файлами библиотеки Boost. Нужно ли мне скомпилировать мою собственную оболочку вокруг API - оболочку, заголовки которой не включают Boost - в динамическую библиотеку ?? (Это единственный способ, который я могу придумать для связывания. Символы в файлах библиотеки Boost API должны быть идентичны символам в моих файлах библиотеки Boost. У меня есть , чтобы выполнить связывание в два этапа , нет? Единственный способ связать одну часть программы без остальных - это создать динамическую библиотеку, нет?)
7
задан chrisaycock 28 January 2011 в 04:46
поделиться