2010-09-30 8 views
16

tengo Ubuntu 10.04 y quiero instalar la última biblioteca de impulso 1.44_0Instalación última biblioteca 1,44 impulso bajo Ubuntu 10.04

he descargado el archivo tar.gz y desempaqueté en/usr/local/boost_1_44_0

Ya tengo la instalación de la versión boost 1.40 desde Synaptic.

Así que quiero compilar y vincular contra 1.44 porque quiero usar algunas nuevas bibliotecas que no están en la versión anterior, como el árbol de propiedades.

Pero, estoy teniendo algunos problemas para hacerlo funcionar.

./bootstrap.sh Ran sudo (que fue muy bien)

Ran ./bjam instalar errores No estaban con bzip2.

gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.4.3/release/threading-multi/file_descriptor.o 
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.4.3/release/threading-multi/mapped_file.o 
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.4.3/release/threading-multi/zlib.o 
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.4.3/release/threading-multi/gzip.o 
gcc.compile.c++ bin.v2/libs/iostreams/build/gcc-4.4.3/release/threading-multi/bzip2.o 
libs/iostreams/src/bzip2.cpp:20:56: error: bzlib.h: No such file or directory 
libs/iostreams/src/bzip2.cpp:31: error: ‘BZ_OK’ was not declared in this scope 
libs/iostreams/src/bzip2.cpp:32: error: ‘BZ_RUN_OK’ was not declared in this scope 
... 

Aunque no estoy usando bzip2, no estoy preocupado.

Pero luego, poco tiempo después, durante la compilación, aparecen pantallas llenas de errores. Demasiados para enumerarlos aquí, pero a menudo tienen python en el nombre.

... en :: Lista] ': ./boost/python/str.hpp:285: una instancia de' boost :: :: pitón STR impulsar :: pitón :: :: str unen (const T &) const [con T = boost :: python :: list] ' libs/python/src/object/function_doc_signature.cpp: 321: instanciado desde aquí ./boost/python/object_core.hpp:334: error: 'object_base_initializer' no estaba declarado en este ámbito

"g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I"." -I"/usr/include/python2.6" -c -o "bin.v2/libs/python/build/gcc-4.4.3/release/threading-multi/object/function_doc_signature.o" "libs/python/src/object/function_doc_signature.cpp" 

...failed gcc.compile.c++ bin.v2/libs/python/build/gcc-4.4.3/release/threading-multi/object/function_doc_signature.o... 
...skipped <pstage/lib>libboost_python.so.1.44.0 for lack of <pbin.v2/libs/python/build/gcc-4.4.3/release/threading-multi>numeric.o... 
...skipped <pstage/lib>libboost_python.so for lack of <pstage/lib>libboost_python.so.1.44.0... 
gcc.compile.c++ bin.v2/libs/random/build/gcc-4.4.3/release/threading-multi/random_device.o 

en primer lugar, ¿por qué tantos errores? También hay otros y demasiados para enumerarlos aquí.

Pero el problema principal que tengo es que quiero hacer un enlace a las bibliotecas, pero no se colocan donde se esperaba. Pensé que estarían en boost_1_44_0/libs, pero no se encuentran. Sí encontré algunos archivos .a esparcidos alrededor.

¿Acabo de construir todo esto mal?

+0

Ok, limpié todo y empecé de nuevo. Agregué los parámetros de arranque para decirle que colocar incluye en/usr/local/boost/include y/usr/local/boost/lib esto funcionó. también agregó la opción --layout = system a la línea de comando bjam. Los archivos parecen estar allí. Todavía hubo errores de compilación, pero la mayoría de las cosas parecen estar allí. Intentará vincular mañana ... – Matt

Respuesta

34

Lo que se echa de menos aquí es la biblioteca bz2 de la que la biblioteca Boost Python en particular depende. Instale esta biblioteca primero con el siguiente comando: sudo apt-get install libbz2-dev.

+1

Gracias, también ayudó a eliminar la biblioteca de impulso anterior. – Matt

+1

¡Ayudó mucho! – Greg

+0

I mi experiencia compiling boost 1.60 Tuve que instalar tanto 'python-dev' como' libbz2-dev' para que se compilara limpiamente. – MatrixManAtYrService

Cuestiones relacionadas