неопределенная ссылка на boost :: program_options в компиляции vowpalwabbit, Ubuntu 16.04

Я пытаюсь установить 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.

0

Решение

Ошибки, которые вы получаете, указывают на то, что у вас их нет 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 конкретная информация

В Ubuntu / Debian / Mint и аналогичных программах следующая последовательность должна работать для сборки последней версии из github:

Получите опции программы libboost и zlib:

apt-get install libboost-program-options-dev zlib1g-dev

Получить привязки python libboost (подкаталог python) — необязательно:

apt-get install libboost-python-dev

Получить источник VW:

git clone git://github.com/JohnLangford/vowpal_wabbit.git

Телосложение:

cd vowpal_wabbit
make
make test       # (optional)
make install

Если эти инструкции не работают для вас, убедитесь, что у вас нет других нестандартных изменений в вашей среде. Изменения, которые, как известно, вызывают проблемы, являются нестандартными LD_LIBRARY_PATH, LD_RPRELOAD, или же ldconfig изменения, которые могут привести к тому, что компоновщик не сможет найти библиотеки в стандартных местах.

1

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

Других решений пока нет …

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