2009-01-13 19 views
44

Estaba tratando de construir Boost C++ Libraries durante las últimas dos horas y me detuve sin ningún resultado. Como soy nuevo en C++, no puedo obtener la compilación correcta. ¿Cómo puedo construirlo correctamente usando Visual Studio 2008?Building Boost BCP

Necesito usar la herramienta BCP para extraer un subconjunto de la biblioteca. Entonces necesito construir BCP primero, ¿verdad? ¿Como hacer esto? Cuando traté de construir, lo tengo el siguiente error

error grave LNK1104: No puede abrir archivo 'libboost_filesystem-vc90-mt-gd-1_37.lib'.

¿Dónde puedo obtener el archivo de biblioteca dado anteriormente?

Respuesta

34

Primero, debe tener las variables de entorno PATH, INCLUDE y LIB adecuadas en el shell de comandos. Para ello, llame al archivo "vcvarsall.bat" (o similar) con el parámetro:

vcvarsall.bat x86 

siguiente que tiene que construir bjam (también se puede descargar desde la página Boost, pero es casi tan rápido). Ir a la carpeta tools\jam\src en Boost y tipo:

build.bat 

debe producir una subcarpeta que contiene bin.ntx86 bjam.exe. Para su comodidad, cópielo en la carpeta principal de Boost. Luego, puedes construir bcp. Entra en la carpeta tools\bcp y tipo:

..\..\bjam.exe --toolset=msvc 

De vuelta en la carpeta principal de Impulso a continuación, puede crear cualquier biblioteca que desea:

bjam toolset=msvc –-with-{library} 

donde {library} es una de las bibliotecas para construir. Todas las bibliotecas compilables se pueden mostrar con:

bjam –-show-libraries 

Hay muchos más parámetros de compilación bjam. Algunos parámetros con palabras clave que puede especificar son:

variant=debug|release 
link=shared|static 
threading=multi|single 

Un ejemplo sería:

bjam toolset=msvc –-with-filesystem threading=multi variant=debug stage 

Para más informaciones, visite el Boost documentation pages.

Editar: Actualización enlace para que apunte a la documentación más reciente Boost

Editar: Corregido opciones --with- {} biblioteca y --show-bibliotecas

+1

Gracias por la excelente respuesta! Esto me ayudó mucho. –

+1

Es '--with- {library}' y '--show-libraries'. Dos '-', no uno. – KTC

+0

Gracias KTC, la documentación dice lo mismo. Corregí la respuesta. – vividos

0

Tenga en cuenta que no es necesario para construir su Versiones de Windows de bcp desde el origen: también puede descargar una versión binaria de http://www.boostpro.com/download y omitir todos esos pasos.

(O, al menos, ese es el caso, en teoría - que no lo han intentado; acabo de encontrar esa página y éste, mientras que en busca de una versión pre-construida Linux.)

+1

Nota: el sitio requiere registrarse para habilitar la descarga. –

+1

Tampoco parece que le proporcione bcp de manera predeterminada ... de todos modos tiene que compilarlo usted mismo. – jamuraa

+2

Windows bcp binary se puede descargar desde aquí: http://netcologne.dl.sourceforge.net/project/boost/boost-binaries/1.51.0/boost_1_51_tools.zip –

105

La versión actual de Boost (1.50.0) usa Boost.Build.El nuevo flujo de trabajo para la construcción de BCP es el siguiente:

desde el directorio raíz Boost, Tipo:

bootstrap.bat 

Entonces, una vez que se ha construido Boost.Build, Tipo:

b2 tools/bcp 
+35

El binario resultante se encuentra en dist/bin/bcp. – meowsqueak

+1

que he hecho 3 pasos:.. '> bootstrap.bat > \ b2 > \ herramientas b2/bcp' Y entonces yo era capaz de usarlo: C: \ Users \ pedro \ dev-VS2008 \ boost_1_59_0> dist \ bin \ bcp boost \ tokenizer.hpp C: \ Users \ pedro \ dev-VS2008 \ MyProject \ boost_1_59_0 –

2

extraje la fuente: https://github.com/district10/cmake-bcp (No necesita configurar BOOST, ya que todos los códigos fuente están incluidos).

En Linux, cmake + make para construir:

# cd source_dir 
mkdir build && cd build 
cmake .. 
make 

En Windows: CMake-GUI + Visual Studio para crear. ¿Necesitas ayuda? Ver HOWTO: Win + CMake + Visual Studio 2010.

Mis ejecutables:


Tip : Si encuentras problemas de vinculación en Windows al usar Boost, ve al boost/config/auto_link.hpp y lo entenderás. Para resolver esto, puede comentar todo el archivo.

+2

Felicitaciones por proporcionar los binarios! Me salvó probablemente 8 horas de compilación. – Samuel