c++ - libreria - Boost libraries: construye solo lo que necesito
get boost (6)
Descargué las bibliotecas de Boost y ahora quiero construir solo algunas de las bibliotecas. ¿Cuál sería el comando correcto para esto? Aparentemente, la opción built-type = complete me da demasiado. Estoy usando Windows XP y quiero usar Bjam para compilar Boost y MinGW para finalmente usarlo. Por el momento, creo que necesito las bibliotecas Boost.filesystem, Boost.ProgramOptions y Boost.System. Otra pregunta: ¿dónde pongo las bibliotecas de solo encabezado?
En el paso 5.1 de comenzar
puede indicar a bootstrap.sh
qué bibliotecas crear
./bootstrap.sh --with-libraries=program_options,filesystem,system
alternativamente, use ./bootstrap.sh --show-libraries
para ver una lista de todas las bibliotecas que no son solo encabezado.
Estas respuestas no funcionaron para mí. Lo que funcionó para mí en Windows fue
b2.exe -with-LIBRARY
por ejemplo
b2.exe -with-test
La utilidad bcp es una herramienta para extraer subconjuntos de Boost, es útil para los autores de Boost que desean distribuir su biblioteca por separado de Boost, y para los usuarios de Boost que desean distribuir un subconjunto de Boost con su aplicación.
La versión actual de Boost (1.50.0) usa Boost.Build. El nuevo flujo de trabajo para construir bcp es el siguiente:
desde el directorio raíz de Boost, escriba:
bootstrap.bat
Luego, una vez que se haya construido Boost.Build, escriba:
b2 tools/bcp
Para extraer, por ejemplo, solo interprocess
, puede usar:
$ mkdir /tmp/interprocess #bcp needs this
$ bcp interprocess /tmp/interprocess
Esto copia el interproceso y sus dependencias a / tmp / interprocess.
Mi último intento de compilación para las bibliotecas Boost 1.55 fue una decepción. Todos los intentos de construir varias bibliotecas y solo ellos han terminado con un desorden total en la producción. Bjam intenta construir todo o compila solo las carpetas solicitadas pero en las carpetas "bin.v2 / [ruta aleatoria larga]" (biblioteca por directorio) con basura en ellas, lo cual es un dolor de cabeza para copiar solo las bibliotecas de enlaces a otra parte. .
Accidentalmente encontré la forma correcta de compilar y recolectar solo las bibliotecas que quiero en un solo lugar sin ninguna otra basura:
bjam ... --with- [library1] --with- [library2] stage
- la opción "etapa" es necesaria para compilar y recopilar bibliotecas en una carpeta: / stage / lib
- la opción "--with- [library]" es necesaria para compilar solo la biblioteca que desee.
Tengo el mismo problema. Pero encontré una forma de crear los archivos necesarios.
Steps to follow:
1. If you have Microsoft Visual Studio 2010 then open MicroSoft visual Studio command prompt (2010) in administrator mode.
2. First enter the code :
> bootstrap.bat
3. Then enter the following code to generate lib files:
> b2.exe link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-system --toolset=msvc-10.0 define=BOOST_USE_WINAPI_VERSION=0x0500
4. Library files will be created in stage folder.
Gracias
Una nota adicional para cualquiera que vea el mensaje de error: "error: wrong library name ''<name of library>'' in the --with-<library> option."
.
Si intenta ser inteligente, como yo lo hice, y solo extrae el subdirectorio de boost
de la descarga en su sistema para minimizar el espacio, b2
no podrá encontrar el código fuente y las opciones de compilación para aquellas bibliotecas que no son de cabecera. solamente. Es decir, también necesita el subdirectorio lib
(y las tools
).