2010-08-05 18 views
6

Trabajo en un proyecto multiplataforma (Windows, Linux, Solaris). Quiero usar el shared_ptr de Boost en este proyecto.¿Cómo agregar impulso a mi proyecto?

¿Cómo puedo instalarlo y redistribuirlo con el proyecto a los clientes?

No tengo permisos de root en Linux/Solaris, así que probablemente tenga que agregar las fuentes de Boost a mis fuentes y compilarlas juntas.

Además, nuestra versión de Solaris es muy antigua (2.5.1, mayo de 1996). ¿Puede causar algún problema con la construcción de shared_ptr?

Respuesta

4

Simplemente instale los archivos de cabecera de impulso (no es necesario que compile e instale las bibliotecas para shared_ptr, porque es solo el encabezado). No olvide verificar si las rutas include para boost están configuradas dentro de su IDE, por lo que podrá encontrar el archivo de encabezado.

En el archivo de código, esta cabecera incluyen:

#include<boost/shared_ptr.hpp> 

y utilizar de esta manera:

boost::shared_ptr<int> ptrToInt (new int); 
4

No es necesario incluir fuentes de la biblioteca Boost (Boost es una biblioteca bastante grande). Simplemente incluya Boost en sus requisitos previos.

En caso de que redistribuya su proyecto en formato binario, no necesita incluir ninguna biblioteca de Boost.

3

boost::shared_ptr es solo encabezado. Simplemente agregue los archivos de encabezado necesarios a su proyecto y listo.

shared_ptr también forma parte de TR1, el primer informe técnico de la biblioteca de C++ y está, p. incluido en las versiones más nuevas de GCC (> = 4.0.0) (vea here para obtener más información).

+3

Tenga en cuenta que 'shared_ptr.hpp' depende de algunos otros archivos de encabezado. –

+1

Boost viene con un programa llamado 'bcp' que se ocupa de eso. Verá a través de su fuente para encontrar los archivos de encabezado de impulso que utiliza, y recursivamente ir a través de ellos para construir un conjunto mínimo. Hacemos esto automáticamente en nuestros scripts de compilación, y funciona bien. – KeithB

3

No necesita gran parte de la biblioteca de impulso sólo para usar shared_ptr. Use la herramienta bcp para extraer solo los bits de los que depende shared_ptr, que pueden ser preferibles a la instalación de la biblioteca completa.

Cuestiones relacionadas