2011-01-21 18 views

Respuesta

11

Para construir 4 vías impulso universal de los binarios estáticos en OSX 10.6 hago lo siguiente:

  1. Descargar impulso desde el sitio web de impulso.

  2. extraer el archivo y cd en la carpeta boost_x_xx_x (donde x_xx_x es la versión del impulso que está utilizando).

  3. Run:

    ./bootstrap.sh y luego

    # The name of the Boost.Jam program changed from "bjam" to "b2" in Boost 1.47.0

    # Replace "b2" with "bjam" if you are compiling a version <= 1.46.1

    ./b2 macosx-version=10.6 macosx-version-min=10.4 architecture=combined threading=multi link=static address-model=32_64

Esto compilará todo a excepción de Boost.M PI (que requiere la opción --with-mpi). Los productos de construcción conseguir poner en ./stage


ACTUALIZACIÓN: Si ha instalado Xcode 4, entonces hay un paso adicional que debe realizar. XCode 4 no viene con compiladores o bibliotecas capaces de apuntar a PowerPC. Desafortunadamente, los compiladores que vienen con XCode 4 se convierten en los compiladores predeterminados utilizados por Boost. Para forzar el uso de los compiladores que vienen con XCode 3, debe realizar un paso adicional. Tenga en cuenta que debe instalar XCode 3 si no está en su sistema.

Después de ejecutar ./bootstrap.sh, y antes de ejecutar b2, abierta:

./tools/build/v2/user-config.jam 

Agregar siguiente línea a ese archivo. Esto indica impulso a utilizar el g ++ - 4.2 de XCode 3:

using darwin : : /Developer-old/usr/bin/g++-4.2 ; 
1

¿Qué bibliotecas estás tratando de compilar? Dice aquí (http://www.boost.org/doc/libs/1_45_0/more/getting_started/unix-variants.html) que:

mayoría de las bibliotecas Boost son sólo de encabezado: que consisten en su totalidad de archivos de encabezado que contienen plantillas y funciones en línea , y no requieren binarios de biblioteca compilados por separado o un tratamiento especial al vincular.

La que sí es necesario para construir son:

  • Boost.Filesystem
  • Boost.GraphParallel
  • Boost.IOStreams
  • Boost.MPI
  • Boost. ProgramOptions
  • Boost.Python
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.System
  • Boost.Thread
  • Boost.Wave

Así que uno está tratando ¿para construir?

+0

quiero construir Boost.Filesystem y Boost.System en 3 arquitecturas i386 x86_64 ppc – Rajeshaz09

+0

@ Rajeshaz09 He actualizado mi responder – ssmir

0

generar los binarios universales bajo tigre estaba creando user-config.jam file de mi directorio raíz ($HOME):

using darwin : : : <compileflags>"-arch ppc -arch i386 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk" ; 

Y entonces yo estaba construyendo Boost como de costumbre con mermelada. Probablemente esto debería funcionar con versiones anteriores de Mac OS X.

Otra forma es usar MacPorts, pero en este caso todas las dependencias de Boost tienen que reconstruirse como binarios universales, lo que no siempre es posible (tengo esto en Tiger dos veces pero fallado).

Para ambos casos, debe tener instalado MacOSX10.4u.sdk con XCode.

[editar]

Para construir durante tres arquitecturas es mejor que leer un answer a una pregunta similar. En resumen, las opciones de compilación en user-config.jam dependen de su versión de Mac OS X y la de destino. Así que será mejor que intentes con varias variantes basadas en la respuesta antes mencionada.

Cuestiones relacionadas