tags:

views:

314

answers:

2

I have ubuntu 10.04 and want to install the latest boost library 1.44_0

I downloaded the tar.gz file and unpacked it into /usr/local/boost_1_44_0

I already have the boost 1.40 version install from synaptic.

So I want to compile and link against 1.44 because I'm wanting to use some new libraries that are not in the older version such as the property tree.

But, I'm having some issues getting it going.

Ran sudo ./bootstrap.sh (that went fine)

Ran ./bjam install There were errors with 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
...

Although I'm not using bzip2 so I'm not worried.

But then a short time later during the compile, screens full of errors appear. Too many to list here, but they often have python in the name.

... on::list]’: ./boost/python/str.hpp:285: instantiated from ‘boost::python::str boost::python::str::join(const T&) const [with T = boost::python::list]’ libs/python/src/object/function_doc_signature.cpp:321: instantiated from here ./boost/python/object_core.hpp:334: error: ‘object_base_initializer’ was not declared in this scope

    "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

First off, why so many errors? There are other ones too and too many to list here.

But the main issue I have is that I want to link to the libraries, but they are not placed where expected. I thought they would be in boost_1_44_0/libs, but they are not found. I did find some .a files scattered around though.

Am I just building this whole thing wrong?

A: 

What you miss here is bz2 library that Boost depends on. Install this library first using the following command - sudo apt-get install libbz2-dev.

Vlad Lazarenko
Thanks, it also helped to remove the old boost library.
Matt H
A: 

You can download the latest boost binary for ubuntu from here: https://launchpad.net/~boost-latest/+archive/ppa

BTB
Thanks for the link.
Matt H