2011-08-02 8 views
5

Me estoy volviendo loco ... Actualmente estoy tratando de actualizar el impulso para mi proyecto de 1.44.0 a 1.47.0 en osx snow leopard.- Quiero construirlo con el siguiente comando:OSX Snow Leopard: Build boost 1.47.0 para 32 y 64 bit

./b2 macosx-version=10.6 link=static address-model=32_64 threading=multi stage 

donde yo esperaría que me da una acumulación de grasa estática que soporta aswell como i386 x86_64. De todos modos, obviamente no, ya que si consulto lipo -info de las libs resultantes, todas son x86_64.- ¿Qué puedo hacer para solucionar esto? ¿Podría ser que el script de compilación está roto?

+0

Creo que necesita especificar explícitamente 'toolset = darwin'; sin embargo, como un control de cordura, ejecute la misma invocación 'b2' más el argumento' -n' y publique una muestra de cómo se invoca el compilador (específicamente, qué argumentos se están pasando). – ildjarn

+0

hmm la -n no está haciendo nada, ¿qué se supone que debe hacer? El darwin no cambia nada (estoy bastante seguro de que es la opción predeterminada en osx de todos modos) ¡gracias! – moka

+0

'-n' le dice a bjam/b2 que muestre los comandos del compilador/enlazador que habría ejecutado, sin realmente ejecutarlos. ¿Estás diciendo que no hubo ningún resultado del programa? – ildjarn

Respuesta

2

lo tengo para trabajar mediante el uso de esta versión:

./b2 link = roscado estática = múltiples conjunto de herramientas = Darwin CXXFLAGS = "- i386 arco -arch x86_64" MacOSX-version = 10,6 fase

2

Esto es lo que funcionó para mí.

./b2 link=static threading=multi toolset=darwin cxxflags="-arch i386 -arch x86_64" target-os=darwin address-model=32_64 stage 
1

La única manera para que consiga los binarios de grasa edificio Boost 1.49 MacOSX 10.6 era utilizar tanto en la arquitectura x86 y parámetros = dirección-modelo = 32_64.

1

He intentado todas las opciones y ninguna produjo un binario universal con arquitecturas de 32 y 64 bits. El que finalmente funcionó para mí fue este:

./b2 threading=multi toolset=darwin architecture=x86 target-os=darwin address-model=32_64 stage 

Esto es con impulso 1.51.0 en Mountain Lion.

0

Usted debe agregar la opción de "arquitectura", por ejemplo:

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

estoy teniendo problemas de construcción 32/64 versiones combinadas también, y en última instancia recurrido a la construcción de los dos por separado (que tenía que añadir el CXX bandera "-arch i386" a la compilación de 32 bits) y el uso de lipo para combinarlos. Por ejemplo:

./bjam link=static release install address-model=32 --prefix=$prefix_dir-x86" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors -arch i386" -s NO_BZIP2=1 -s NO_ZLIB=1 
./bjam link=static release install address-model=64 --prefix=$prefix_dir-x64" --python-buildid=2.7 python=2.7 --with-python cxxflags="-fPIC -Wfatal-errors" -s NO_BZIP2=1 -s NO_ZLIB=1 
lipo $prefix_dir-x86/lib/libboost_python-2_7.a $prefix_dir-x64/lib/libboost_python-2_7.a -output $prefix_dir-universal/libboost_python-2_7.a -create 

Dado que todavía tengo 64 binarios de bits (cuando solicité 32 bits) antes de agregar "i386 -arch", sospecho que hay un problema con la escritura de la estructura bjam/de b2 durante 32 binarios de bits en Mac OS.

Cuestiones relacionadas