Установка последней библиотеки Boost 1.44 под Ubuntu 10.04

У меня Ubuntu 10.04 и я хочу установить последнюю версию библиотеки Boost 1.44_0.

Я скачал файл tar.gz и распаковал его в /usr/local/boost

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
...
44_0

У меня уже установлена ​​версия boost 1.40 от Synaptic.

Итак, я хочу скомпилировать и связать с 1.44, потому что я хочу использовать некоторые новые библиотеки, которых нет в более старой версии, такие как дерево свойств.

Но у меня есть некоторые проблемы с запуском.

Запустил sudo ./bootstrap.sh (все прошло нормально)

Запустил ./bjam install Были ошибки с 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
...

Хотя я не использую bzip2, так что я не беспокоюсь.

Но через некоторое время во время компиляции появляются экраны, полные ошибок. Их слишком много, чтобы перечислять здесь, но в их названии часто встречается питон.

... on::list]': ./boost/python/str.hpp:285: создается из 'boost::python::str boost::python::str::join(const T&) const [с T = boost::python::list]' libs/python/src/object/function_doc_signature.cpp:321: экземпляр отсюда ./boost/python/object_core.hpp:334: ошибка: 'object_base_initializer' не был объявлен в этой области

    "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

Во-первых, почему так много ошибок? Есть и другие, и их слишком много, чтобы перечислять здесь.

Но главная проблема, которая у меня есть, заключается в том, что я хочу связать библиотеки, но они не расположены там, где ожидалось. Я думал они будут в boost

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
...
44_0/libs, но их нет. Однако я нашел несколько разбросанных файлов .a.

Я просто строю все это неправильно?


person hookenz    schedule 30.09.2010    source источник
comment
Хорошо, я очистил все это и начал снова. Я добавил параметры начальной загрузки, чтобы указать, что нужно размещать включения в /usr/local/boost/include и /usr/local/boost/lib, и это сработало. также добавлен параметр --layout=system в командную строку bjam. Файлы вроде есть. Ошибки сборки все еще были, но большинство вещей, кажется, там. Завтра попробую связать...   -  person hookenz    schedule 30.09.2010


Ответы (2)


Здесь вам не хватает библиотеки bz2, от которой, в частности, зависит библиотека Boost Python. Сначала установите эту библиотеку, используя следующую команду — sudo apt-get install libbz2-dev.

person Community    schedule 30.09.2010
comment
Спасибо, тоже помогло удалить старую библиотеку boost. - person hookenz; 01.10.2010
comment
По моему опыту компиляции boost 1.60, мне пришлось установить и python-dev, и libbz2-dev, чтобы заставить его собираться чисто. - person MatrixManAtYrService; 06.02.2016

Вы можете загрузить последний бинарный файл boost для Ubuntu отсюда: https://launchpad.net/~boost-latest/+archive/ppa

person BTB    schedule 19.10.2010
comment
Есть что-то подобное для буста 1.41? - person user1918858; 23.02.2017