Пример создания boost-python

Я использую Ubuntu 13.10. Я установил libboost1.54-dev.

Я сделал Git Checkout Boost и сделал проверку на «boost-1.54.0».

Я изменил каталоги на boost / libs / python / example / tutorial в исходном коде.

Я побежал «BJAM». Я получил:

$ bjam
Unable to load Boost.Build: could not find build system.
---------------------------------------------------------
/home/dustin/build/boost/libs/python/example/boost-build.jam attempted to load the build system by invoking

'boost-build ../../../tools/build/v2 ;'

but we were unable to find "bootstrap.jam" in the specified directory
or in BOOST_BUILD_PATH (searching /home/dustin/build/boost/libs/python/example/../../../tools/build/v2, /usr/share/boost-build).

Please consult the documentation at 'http://www.boost.org'.

В каталоге примеров только три файла:

-rw-r--r-- 1 dustin dustin  484 Mar  1 12:59 hello.cpp
-rwxr-xr-x 1 dustin dustin  275 Mar  1 12:59 hello.py
-rw-r--r-- 1 dustin dustin 1445 Mar  1 15:43 Jamroot

В инструкциях говорится, что все должно быть просто: http://www.boost.org/doc/libs/1_54_0/libs/python/doc/tutorial/doc/html/python/hello.html

Последние несколько строк строки:

openat(AT_FDCWD, "/home/dustin/build/boost/libs/python/example/tutorial", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/home/dustin/build/boost/libs/python/example", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/share/boost-build", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/home/dustin/build/boost/libs/python/example/boost-build.jam", O_RDONLY) = 3

Почему он ищет boost-build.jam? Что мне не хватает?

0

Решение

Вы можете создать свой собственный boost-build.jam. Для примера быстрого запуска (который не работает) просто создайте файл с именем boost-build.jam с этим в нем и убедитесь, что он указывает на ЦСИ каталог. Это обсуждается здесь http://lists.boost.org/boost-build/2014/11/27738.php

# Edit this path to point at the tools/build/v2 subdirectory of your
# Boost installation.  Absolute paths work, too.
boost-build ../../../../tools/build/src ;
3

Другие решения

По сути, bjam — это интерпретатор, а Boost.Build — система сборки, написанная в файлах bjam. Когда bjam запускается, он пытается найти файлы jam для Boost.Build. В этом случае BJAM попытался найти boost-build.jam относительно учебника и ошибок, когда он отсутствует. Чтобы построить учебник, либо:

  • Убедитесь, что boost/tools/build субмодуль был инициализирован из репозитория boost git. Boost.Python имеет другие зависимости, поэтому может быть проще инициализировать все подмодули. Это позволит установить интерпретатор bjam с libboost1.54-dev пакет, чтобы найти Boost.Build из репозитория, и построить учебник и его зависимости.
  • Для сборки на основе упакованных библиотек:

    • Установите libboost1.54 пакет. Это установит разделяемую библиотеку Boost.Python и ее зависимости.
    • Измените Jamroot-файл учебника. Он больше не должен пытаться использовать проект boost и должен явно указывать путь к общей библиотеке Boost.Python:

      -# Specify the path to the Boost project.  If you move this project,
      -# adjust this path to refer to the Boost root directory.
      -use-project boost
      -  : ../../../.. ;
      -
      # Set up the project-wide requirements that everything uses the
      -# boost_python library from the project whose global ID is
      -# /boost/python.
      +# boost_python library.
      project
      -  : requirements <library>/boost/python//boost_python ;
      +  : requirements <library>/usr/lib/libboost_python-py27.so ;
      

      Возможно, потребуется изменить путь и имя библиотеки в зависимости от того, где libboost-python1.54-dev в комплекте установлена ​​библиотека Boost.Python.

    • Установить BOOST_BUILD_PATH переменная среды для /usr/share/boost-build/kernel или где libboost1.54-dev пакет установлен boost-build.jam,
1

По вопросам рекламы [email protected]