Я пытаюсь установить vowpal_wabbit в убунту 16.04.
Ошибка :
./libvw.a(search.o): In function `Search::setup(vw&)':
search.cc:(.text+0xa5f8): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
search.cc:(.text+0xaafe): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
search.cc:(.text+0xac0e): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
search.cc:(.text+0xad20): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
search.cc:(.text+0xadda): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
search.cc:(.text+0xae94): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
./libvw.a(search.o):search.cc:(.text+0xafaa): more undefined references to `boost::program_options::abstract_variables_map::operator[](std::string const&) const' follow
./libvw.a(search_meta.o): In function `SelectiveBranchingMT::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_meta.cc:(.text+0x7645): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
./libvw.a(search_sequencetask.o): In function `SequenceSpanTask::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_sequencetask.cc:(.text+0x14ab): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
./libvw.a(search_sequencetask.o): In function `ArgmaxTask::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_sequencetask.cc:(.text+0x2a02): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
./libvw.a(search_dep_parser.o): In function `DepParserTask::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_dep_parser.cc:(.text+0x4328): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
./libvw.a(search_dep_parser.o): In function `void Search::check_option<unsigned int>(unsigned int&, vw&, boost::program_options::variables_map&, char const*, bool, bool (*)(unsigned int, unsigned int), char const*, char const*)':
search_dep_parser.cc:(.text._ZN6Search12check_optionIjEEvRT_R2vwRN5boost15program_options13variables_mapEPKcbPFbS1_S1_ESA_SA_[_ZN6Search12check_optionIjEEvRT_R2vwRN5boost15program_options13variables_mapEPKcbPFbS1_S1_ESA_SA_]+0x1ea): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
./libvw.a(search_entityrelationtask.o): In function `EntityRelationTask::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_entityrelationtask.cc:(.text+0x33f7): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
./libvw.a(search_graph.o): In function `GraphTask::initialize(Search::search&, unsigned long&, boost::program_options::variables_map&)':
search_graph.cc:(.text+0x17aa): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
search_graph.cc:(.text+0x196c): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
./libvw.a(scorer.o): In function `scorer_setup(vw&)':
scorer.cc:(.text+0x1cd): undefined reference to `boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
scorer.cc:(.text+0x271): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
collect2: error: ld returned 1 exit status
Makefile:46: recipe for target 'vw' failed
make[1]: *** [vw] Error 1
make[1]: Leaving directory '/home/kapil/Projects/MachineLearning/vowpal_wabbit/vowpalwabbit'
Makefile:97: recipe for target 'vw' failed
make: *** [vw] Error 2
Я следую инструкциям, приведенным в хранилище. Я установил libboost-program-options-dev
, zlib1g-dev
& libboost-python-dev
, Я пытался сначала просто запустить make
, что дает неопределенную ошибку ссылки. Затем я попытался с помощью autogen.sh
сценарий до make
, но это также приводит к той же ошибке. Я также безуспешно пытался использовать такие команды, как make BOOST_FLAGS=-lboost-program-options
& make BOOST_FLAGS=-lboost_options
, Я пытался с помощью clang++
но это дает тот же результат. Я проверил оба boost
& boost_program-options
& они присутствуют и являются последней версией. Как мне убрать ошибку?
Проблема в том, что, хотя я могу установить vowpalwabbit, используя ppa, в ubuntu, когда я пытаюсь установить его для python, используя pip, он выдает ту же ошибку ссылки. Мне нужно установить версию Python.
Ошибки, которые вы получаете, указывают на то, что у вас их нет libboost
библиотеки разработки (в частности, libboost-program-options-dev
) установлены. libboost-program-options-dev
указан в предварительных условиях для строительства vw
из источника. Вы можете установить все библиотеки boost + headers путем установки метапакета libboost-all-dev
,
Согласно официальные инструкции в файле README.md бежать не нужно autogen.sh
на Ubuntu (на самом деле, это рекомендуется не сделать это по умолчанию, потому что он перезаписывает оригинал Makefile
которые работают просто отлично).
Вот полные инструкции по Ubuntu (для удобства воспроизведены с официальной вики на github):
В Ubuntu / Debian / Mint и аналогичных программах следующая последовательность должна работать для сборки последней версии из github:
apt-get install libboost-program-options-dev zlib1g-dev
apt-get install libboost-python-dev
git clone git://github.com/JohnLangford/vowpal_wabbit.git
cd vowpal_wabbit
make
make test # (optional)
make install
Если эти инструкции не работают для вас, убедитесь, что у вас нет других нестандартных изменений в вашей среде. Изменения, которые, как известно, вызывают проблемы, являются нестандартными LD_LIBRARY_PATH
, LD_RPRELOAD
, или же ldconfig
изменения, которые могут привести к тому, что компоновщик не сможет найти библиотеки в стандартных местах.
Других решений пока нет …