2009-08-31 13 views
19

¿Cómo fuerzo una compilación de 32 bits de Boost con GCC? Actualmente intento por poner esta línea en mi user-config.jam, pero no funciona:¿Cómo fuerzo una compilación de 32 bits de Boost con GCC?

using gcc : 4.1.2 : g++ : compileflags="-m32" ; 
+0

para construirlo usando bjam, creo que haría esto: bjam dirección de modelo = 32 arquitectura = x86 –

+0

¿Esto está en un sistema Linux ...? En general, hago trampa usando 'setarch i686 make' o similar. Sin embargo, no sé si eso funcionaría para Boost, en particular. (Y, en ese caso, puedes descargar el binario de 32 bits para tu sistema operativo, así que supongo que quizás estés en otro sistema). – BRFennPocock

Respuesta

25

Si está utilizando C++ Boost 1.40, utilice:

bjam address-model=32 

Si está utilizando la versión eariler, considere actualizar. Si no puede, utilizar

bjam address-model=32 architecture=x86 

también recomiendo que eche un vistazo a la fine manual

+11

Oh, sí ... ese "buen manual" es genial. Me encantan todos los ejemplos que proporcionan. (Sarcasmo) –

+1

Los parches son bienvenidos. Sin embargo, no estoy exactamente seguro de que agregar explícitamente un comando completo como ejemplo para cada propiedad enumerada en la URL anterior sea mucho más que engrosar el tamaño de los documentos. –

+2

Tenga en cuenta que si tiene una versión de 64 bits de 'gcc', debería echarle un vistazo a la respuesta de @AndrewMeadows. – ereOn

18

Esta respuesta me ayudó hacia una solución que funcionó para mí. Yo estaba tratando de compilar una versión de 32 bits de boost_1_43_0 en debian de 64 bits, y finalmente se le ocurrió esto:

./bjam     \ 
    cflags=-m32   \ 
    cxxflags=-m32  \ 
    address-model=32  \ 
    threading=multi  \ 
    architecture=x86  \ 
    instruction-set=i686 \ 
    stage 
+1

Además, si desea cambiar el compilador, puede especificar su versión del compilador mediante 'project-config.jam' o 'user-config.jam' del directorio boost, asegurándose de que 'using gcc:: g ++ - 4.4; 'se usa (se especifica 4.4 para compilar Boost con archivos Matlab MEX (32 bits) en Linux de 64 bits). – eacousineau

+0

Gracias Andrew, ¡respuesta muy útil! –

Cuestiones relacionadas