Python — компиляция libtorrent Rasterbar для индивидуалистов

Я только что скомпилировал и установил boost из исходного кода, используя

$pwd

/Downloads/boost_1_58_0

./b2 threading=multi link=static runtime-link=static cxxflags="-stdlib=libstdc++" linkflags="-stdlib=libstdc++"

и получил сообщение после завершения сборки,

Библиотеки Boost C ++ успешно созданы!

Следующий каталог должен быть добавлен в пути включения компилятора:

/Downloads/boost_1_58_0

Следующий путь должен быть добавлен к путям библиотеки компоновщика:

/Downloads/boost_1_58_0/stage/lib

Теперь, когда я пытался установить Python в ожидании lib Torrent, используя sudo pip install .

Я получил сообщение об ошибке b2: command not found Так как я знал, где находится команда b2, где я собираю boost, я обновил setup.py по указанному пути,

но все же когда я пытаюсь sudo pip install . Python привязка lib torrent я получаю ниже сообщение.

Complete output from command python setup.py egg_info:
Unable to load Boost.Build: could not find "boost-build.jam"---------------------------------------------------------------
BOOST_ROOT must be set, either in the environment, or
on the command-line with -sBOOST_ROOT=..., to the root
of the boost installation.

Attempted search from /private/tmp/pip-OWjwyj-build up to the root
at /Downloads/share/boost-build
and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: /usr/share/boost-build.
Please consult the documentation at 'http://www.boost.org'.
/Downloads/boost_1_58_0/b2 boost=source link=static geoip=static boost-link=static release optimization=space stage_module --abbreviate-paths -j4
build failed

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-OWjwyj-build

после выполнения шагов, упомянутых в первом ответе, я попытался запустить make но это дало следующую ошибку:

In file included from ../include/libtorrent/torrent_handle.hpp:55:
../include/libtorrent/storage.hpp:346:3: error: no template named 'scoped_ptr'
in namespace 'boost'; did you mean 'boost::asio::detail::scoped_ptr'?
boost::scoped_ptr<storage_interface> m_storage;
^~~~~~~~~~~~~~~~~
boost::asio::detail::scoped_ptr
/opt/local/include/boost/asio/detail/scoped_ptr.hpp:27:7: note:
'boost::asio::detail::scoped_ptr' declared here
class scoped_ptr
^
In file included from piece_picker.cpp:41:
In file included from ../include/libtorrent/aux_/session_impl.hpp:66:
In file included from ../include/libtorrent/torrent_handle.hpp:55:
../include/libtorrent/storage.hpp:279:53: error: no viable overloaded
'operator->'
error_code const& error() const { return m_storage->error(); }
~~~~~~~~~^
/opt/local/include/boost/asio/detail/scoped_ptr.hpp:49:6: note: candidate
function not viable: 'this' argument has type 'const
boost::scoped_ptr<storage_interface>', but method is not marked const
T* operator->()
^
In file included from piece_picker.cpp:41:
In file included from ../include/libtorrent/aux_/session_impl.hpp:66:
In file included from ../include/libtorrent/torrent_handle.hpp:55:
../include/libtorrent/storage.hpp:280:59: error: no viable overloaded
'operator->'
...std::string const& error_file() const { return m_storage->error_file(); }
~~~~~~~~~^
/opt/local/include/boost/asio/detail/scoped_ptr.hpp:49:6: note: candidate
function not viable: 'this' argument has type 'const
boost::scoped_ptr<storage_interface>', but method is not marked const
T* operator->()
^
In file included from piece_picker.cpp:41:
../include/libtorrent/aux_/session_impl.hpp:624:4: error: no template named
'scoped_ptr' in namespace 'boost'; did you mean
'boost::asio::detail::scoped_ptr'?
boost::scoped_ptr<boost::thread> m_thread;
^~~~~~~~~~~~~~~~~
boost::asio::detail::scoped_ptr
/opt/local/include/boost/asio/detail/scoped_ptr.hpp:27:7: note:
'boost::asio::detail::scoped_ptr' declared here
class scoped_ptr
^

0

Решение

Поскольку вы не возражаете против использования boost-build для сборки, самый простой способ сделать это:

export BOOST_ROOT=/Downloads/boost_1_58_0
export BOOST_BUILD_PATH=$BOOST_ROOT/tools/build
export PATH=$PATH:$BOOST_BUILD_PATH/src/engine/bin.macosxx86_64
echo "using darwin ;" >~/user-config.jam

cd libtorrent/bindings/python
b2 boost=source

Первые 4 строки в основном устанавливают boost-build (b2). Предполагается, что выходной каталог при сборке b2 был bin.macosxx86_64.

Это создаст модуль libtorrent python, но не установит его.

1

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


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