2010-09-30 15 views
16

ho ubuntu 10.04 e si desidera installare l'ultima libreria Boost 1.44_0Installazione ultima biblioteca 1.44 spinta sotto Ubuntu 10.04

Ho scaricato il file tar.gz e scompattato in/usr/local/boost_1_44_0

Ho già installato la versione 1.40 di boost da synaptic.

Quindi voglio compilare e collegare 1.44 perché sto volendo utilizzare alcune nuove librerie che non sono nella versione precedente come la struttura delle proprietà.

Ma, sto avendo alcuni problemi per farlo funzionare.

Ran sudo ./bootstrap.sh (che è andato benissimo)

Ran ./bjam installare ci sono stati errori 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 
... 

Anche se non sto usando bzip2, quindi non sono preoccupato.

Ma dopo poco tempo durante la compilazione, vengono visualizzate schermate piene di errori. Troppi per elencare qui, ma spesso hanno python nel nome.

... su :: list] ': ./boost/python/str.hpp:285: istanziato da' pitone boost :: :: str boost :: pitone :: :: Entra str (const T &) const [con T = boost :: python :: list] ' libs/python/src/object/function_doc_signature.cpp: 321: istanziato da qui ./boost/python/object_core.hpp:334: errore: 'object_base_initializer' non è stato dichiarato in questo ambito

"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 

Prima di tutto, perché così tanti errori? Ci sono anche altri e troppi da elencare qui.

Ma il problema principale è che voglio collegarmi alle librerie, ma non sono posizionate dove previsto. Pensavo che si sarebbero trovati in boost_1_44_0/libs, ma non sono stati trovati. Ho trovato alcuni file .a sparsi però.

Sto costruendo tutto questo male?

+0

Ok, ho ripulito il tutto e ricominciato. Ho aggiunto i parametri di bootstrap per dirgli di inserire include in/usr/local/boost/include e/usr/local/boost/lib ha funzionato. ha anche aggiunto l'opzione --layout = system alla riga di comando bjam. I file sembrano essere lì. C'erano ancora errori di compilazione, ma la maggior parte delle cose sembra essere lì dentro. Proverò a collegare domani ... – Matt

risposta

34

Quello che ti manca è la libreria bz2 da cui dipende in particolare la libreria Boost Python. Installare questa libreria prima utilizzando il seguente comando - sudo apt-get install libbz2-dev.

+1

Grazie, ha anche aiutato a rimuovere la vecchia libreria boost. – Matt

+1

Ha aiutato molto! – Greg

+0

I mia esperienza nella compilazione di boost 1.60 Ho dovuto installare sia 'python-dev' che' libbz2-dev' per poterlo creare in modo pulito. – MatrixManAtYrService

Problemi correlati