2015-06-13 10 views
0

Я просто скомпилировать и установить импульс от источника с помощьюкомпиляции Libtorrent Rasterbar для индивидуалистов

$pwd

/Downloads/boost_1_58_0

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

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

подпиточного C++ Библиотеки были успешно построены!

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

/Downloads/boost_1_58_0 

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

/Downloads/boost_1_58_0/stage/lib 

теперь, когда я пытаюсь установить питон Lib торрентов ожидающий использования sudo pip install .

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

но все же, когда я пытаюсь установить sudo pip install . python binding of 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 
    ^

ответ

1

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

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 строки, в основном, установка наддува-сборки (b2). Предполагается, что выходной каталог, когда вы построили b2, был bin.macosxx86_64.

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

+0

извините, но это не помогло, я выполнил вышеуказанные шаги, затем попытался «сделать» 'libtorrent', но работает make дает ' 4 сгенерированных ошибок. make [1]: *** [штук_picker.lo] Ошибка 1 make: *** [all-recursive] Ошибка 1' Я обновил эту часть в сообщении, так как эта ошибка была слишком большой, чтобы опубликовать здесь –

+0

эти инструкции не включали запуск '' make''. Вы получаете ошибки компиляции или ошибки ссылок? если он не набирает boost, вам может потребоваться передать --with-boost = ... в скрипт configure. см. '' ./configure --help'' – Arvid