Tengo una aplicación que necesita utilizar cierta API C++ de código cerrado. Esta API se distribuye con algunos bits de Boost, archivos de bibliotecas binarias y todo. Me gusta usar Boost en mi propio código. No puedo usar su versión de Boost ya que no distribuyeron todas las partes de Boost que necesito. ¿Cómo debo proceder? La plataforma objetivo es Linux, eventualmente Windows también.boost distribuido con la biblioteca de código cerrado
- No pasaré objetos Boost a través del límite API.
- puedo compilar las cosas a los archivos de objetos de manera que mi código utiliza mis cabeceras de impulso, y el código de la API utiliza sus cabeceras de Boost. Esta parte parece directa.
- Lo que No get: cómo enlacemi código a mis archivos de la biblioteca Boost, y el código de API para sus archivos de la biblioteca Boost. ¿Necesito compilar mi propia envoltura alrededor de la API? ¿Una envoltura cuyos encabezados hacen no incluyen Boost - a una biblioteca dinámica? (Esta es la única forma en que se me ocurre hacer los enlaces. Los símbolos en los archivos de la biblioteca Boost de la API deben ser idénticos a los símbolos en los archivos de la biblioteca Boost. I tienen para hacer el enlace en dos etapas, ¿no? La única forma en que puedo vincular una parte del programa sin el resto es crear una biblioteca dinámica, ¿no?)
También tengo que trabajar con la biblioteca de código fuente de un tercero. Distribuyeron su propia versión (realmente antigua) de Boost con la biblioteca. Afortunadamente, cambiaron el nombre de su biblioteca de Boost, como 'BoostSystem_x86-64_redhat_gcc41_mdi' en lugar de' boost_system'. De alguna manera, mi código realmente se construye. – chrisaycock
ver http://stackoverflow.com/questions/2907882/using-concurrently-2-versions-of-boost – KitsuneYMG
@chrisaycock ¿Estás usando Activ? ¡Tengo el mismo nombre de archivo! Pero sospecho que los símbolos en ese archivo tienen el mismo nombre que los de mi versión de boost, lo que significa que mi Boost se vinculará al impulso de Activ ... @KitsuneYMG Todavía no he recibido una respuesta a este problema de vinculación ... (incluso si funciona, tengo un poco de miedo de esperar que siga funcionando ...) – Scott