У меня есть приложение, которое должно использовать определенный API C ++ с закрытым исходным кодом. Этот API распространяется с некоторыми битами Boost, файлами двоичных библиотек и всем остальным. Мне нравится использовать Boost в моем собственном коде. Я не могу просто использовать их версию Boost, поскольку они не распространяли все части Boost, которые мне нужны. Как мне продолжить? Целевая платформа - Linux, а в конечном итоге и Windows.
- Я не буду передавать объекты Boost через границу API.
- Я могу компилировать вещи в объектные файлы, чтобы мой код использовал заголовки Boost my, а код API использовал свои заголовки Boost. Эта часть кажется простой.
- Чего я не получаю: как связать мой код с моими файлами библиотеки Boost, а код API - с его файлы библиотеки Boost. Нужно ли мне скомпилировать мою собственную оболочку вокруг API - оболочку, заголовки которой не включают Boost - в динамическую библиотеку ?? (Это единственный способ, который я могу придумать для связывания. Символы в файлах библиотеки Boost API должны быть идентичны символам в моих файлах библиотеки Boost. Я должен выполнить связывание в двух этапов, нет? Единственный способ связать одну часть программы без остальных - это создать динамическую библиотеку, не так ли?)
BoostSystem_x86-64_redhat_gcc41_mdi
вместоboost_system
. Каким-то образом мой код действительно строится. - person chrisaycock   schedule 28.01.2011