Не удалось собрать vowpal wabbit в Centos 7

Я пытаюсь установить vowpal wabbit в виртуальной среде в Centos 7. Я установил такие зависимости, как boost(https://medium.com/@royendgel/boost-boost-python-dlib-python3-on-centos-or-amazon-linux-4039f70a3614) требуется.

Python: 3.6 Cmake: 3.6.2 (установлен в соответствии с этим документом: http://jotmynotes.blogspot.com/2016/10/updating-cmake-from-2811-to-362-or.html)

Вот ошибка при запуске "make install". Я следовал инструкциям для Linux с https://github.com/VowpalWabbit/vowpal_wabbit/wiki/Installing .

 Scanning dependencies of target spanning_tree
[  1%] Building CXX object cluster/CMakeFiles/spanning_tree.dir/spanning_tree_main.cc.o
[  1%] Building CXX object cluster/CMakeFiles/spanning_tree.dir/__/vowpalwabbit/spanning_tree.cc.o
[  2%] Building CXX object cluster/CMakeFiles/spanning_tree.dir/__/vowpalwabbit/vw_exception.cc.o
[  3%] Linking CXX executable spanning_tree
[  3%] Built target spanning_tree
[  6%] Built target allreduce
[  6%] Building CXX object vowpalwabbit/CMakeFiles/vw.dir/audit_regressor.cc.o
In file included from /home/joel/vowpal_wabbit/vowpalwabbit/reductions.h:9:0,
                 from /home/joel/vowpal_wabbit/vowpalwabbit/audit_regressor.cc:5:
/home/joel/vowpal_wabbit/vowpalwabbit/global_data.h:479:30: warning: missing initializer for member ‘std::array<std::vector<std::shared_ptr<std::unordered_map<std::basic_string<char>, std::unique_ptr<features> > > >, 256ul>::_M_elems’ [-Wmissing-field-initializers]
       namespace_dictionaries{};  // each namespace has a list of dictionaries attached to it
                              ^
In file included from /home/joel/vowpal_wabbit/vowpalwabbit/global_data.h:49:0,
                 from /home/joel/vowpal_wabbit/vowpalwabbit/reductions.h:9,
                 from /home/joel/vowpal_wabbit/vowpalwabbit/audit_regressor.cc:5:
/home/joel/vowpal_wabbit/vowpalwabbit/options.h: In instantiation of ‘VW::config::typed_option<T>::typed_option(const string&, T&) [with T = std::basic_string<char>; std::string = std::basic_string<char>]’:
/home/joel/vowpal_wabbit/vowpalwabbit/options.h:97:40:   required from ‘VW::config::typed_option<T> VW::config::make_option(std::string, T&) [with T = std::basic_string<char>; std::string = std::basic_string<char>]’
/home/joel/vowpal_wabbit/vowpalwabbit/audit_regressor.cc:249:58:   required from here
/home/joel/vowpal_wabbit/vowpalwabbit/options.h:37:117: error: invalid initialization of non-const reference of type ‘std::basic_string<char>&’ from an rvalue of type ‘<brace-enclosed initializer list>’
   typed_option(const std::string& name, T& location) : base_option(name, typeid(T).hash_code()), m_location{location} {}
                                                                                                                     ^
make[2]: *** [vowpalwabbit/CMakeFiles/vw.dir/audit_regressor.cc.o] Error 1
make[1]: *** [vowpalwabbit/CMakeFiles/vw.dir/all] Error 2
make: *** [all] Error 2

person joel    schedule 15.04.2020    source источник
comment
Пожалуйста, отредактируйте свой вопрос, чтобы включить ссылку на используемую версию vowpal_wabbit. ... Последняя версия: github.com/VowpalWabbit/vowpal_wabbit ... Важно : Компилятор С++ 11, например. g++-7.3 stackoverflow.com/questions/47175706/ ... И, возможно, версия Boost, созданная с помощью С++ 11.   -  person Knud Larsen    schedule 16.04.2020


Ответы (2)


пытаюсь установить vowpal wabbit

Компилятор g++ должен быть версии C++11. Boost должен быть скомпилирован с С++ 11... см. как установить gcc 4.9.2 на RHEL 7.4

CentOS 7: пример сборки в /home/[name]/tmp/

======= Boost ========
cd boost_1_68_0/
echo "using gcc : : /usr/bin/g++73 ; " >> tools/build/src/user-config.jam
echo "using python : 3.6 : /usr/bin/python3.6 : /usr/include/python3.6m ; " >> tools/build/src/user-config.jam

./bootstrap.sh
./b2
# ./b2 install

======== dlib ============
cd dlib-19.19.0/ && python3 setup.py build
# python3 setup.py install

======== VowpalWabbit ========
git clone https://github.com/VowpalWabbit/vowpal_wabbit.git
cd vowpal_wabbit/
git submodule update --init --recursive
mkdir build && cd build/
CC=gcc73 CXX=g++73 cmake3 ..
make      // no errors

P.S.: Реф. README.md → новая «Информация о строительстве» находится здесь https://github.com/VowpalWabbit/vowpal_wabbit/wiki/BuildingПредупреждение. Выполнение make в vowpal_wabbit/ может настроить только для Python 2.


Создание привязок python3 для VowpalWabbit : Поскольку Makefile по умолчанию и параметры cmake предназначены только для python2, решение следующее:

cd vowpal_wabbit/
export CC=gcc73 CXX=g++73 && python3 setup.py build
.
[100%] Built target pylibvw
.
# export CC=gcc73 CXX=g++73 && python3 setup.py install
person Knud Larsen    schedule 16.04.2020

Очистить линукс центос 7

  • ням обновление
  • установить gcc*
  • установить cmake-3.10.2.tar.gz
  • установить boost_1_65_1.tar.gz
  • установить Java-1.8

LD_LIBRARY_PATH=/opt/boost/lib экспорт LD_LIBRARY_PATH

BOOST_ROOT=/opt/boost(выбрать место при установке) export BOOST_ROOT ... cd build; сделай ..

Полный.

person CAP    schedule 04.05.2021