Как использовать команду make

Я пытаюсь установить эту библиотеку: https://github.com/sfdodge/xnet

Я успешно установил xtensor и xtensor blas с помощью conda. Теперь, когда я создаю эту библиотеку (как упоминалось в прочтите меня), она генерирует следующую ошибку:

CMakeFiles/test_xNet.dir/build.make:62: recipe for target 'CMakeFiles/test_xNet.dir/src/FullLayer.cpp.o' failed
make[2]: *** [CMakeFiles/test_xNet.dir/src/FullLayer.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/test_xNet.dir/all' failed
make[1]: *** [CMakeFiles/test_xNet.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Редактировать:

Ошибка:

In file included from /home/fatima/anaconda2/gcc/include/c++/string:48:0,
                 from /home/fatima/Downloads/xnet-master/src/FullLayer.hpp:4,
                 from /home/fatima/Downloads/xnet-master/src/FullLayer.cpp:1:
/home/fatima/anaconda2/gcc/include/c++/bits/stl_function.h:158:12: error: provided for ‘template<class _Tp> struct std::multiplies’
     struct multiplies : public binary_function<_Tp, _Tp, _Tp>
            ^
In file included from /home/fatima/Downloads/xnet-master/src/mat.hpp:5:0,
                 from /home/fatima/Downloads/xnet-master/src/FullLayer.hpp:6,
                 from /home/fatima/Downloads/xnet-master/src/FullLayer.cpp:1:
/home/fatima/anaconda2/include/xtensor/xsort.hpp: In function ‘auto xt::sort(const xt::xexpression<E>&, std::ptrdiff_t)’:
/home/fatima/anaconda2/include/xtensor/xsort.hpp:190:43: error: ‘decay_t’ is not a member of ‘std’
             return detail::flat_sort_impl<std::decay_t<decltype(de)>, eval_type>(de);

Существуют ошибки до того, как они более актуальны, чем ошибки, связанные с ошибкой.

Matthieu Brucher 31.10.2018 12:27

Для cmake см. это. Для GNU make прочтите его документация. Для gcc и g++ прочтите о Вызов GCC

Basile Starynkevitch 31.10.2018 12:28

@MatthieuBrucher Я отредактировал свой вопрос и добавил еще (те, что в начале). Не могу прокрутить дальше этого. Все ошибки похожи на эту. Как вы думаете, мне следует использовать conda для сборки моего проекта? поскольку xtensor был установлен с использованием conda

Nerd Giraffe 31.10.2018 12:39

Возможно, вам потребуется добавить соответствующий флаг C++ для новых стандартов (-std = C++ 11 или самый высокий, который может дать вам ваш gcc),

Matthieu Brucher 31.10.2018 12:42

@MatthieuBrucher, пожалуйста, расскажите, как это сделать.

Nerd Giraffe 31.10.2018 12:44

Какая у вас версия gcc?

Matthieu Brucher 31.10.2018 12:45

Я обновил его до 7 на ubuntu 16

Nerd Giraffe 31.10.2018 12:48

Как установить флаг в команде make @MatthieuBrucher?

Nerd Giraffe 31.10.2018 12:57

На самом деле для файла cmake требуется C++ 14, поэтому, если вы сделаете VERBOSE = 1 make, вы должны увидеть -std = C++ 14 в командной строке. Вы можете это подтвердить?

Matthieu Brucher 31.10.2018 12:58

@MatthieuBrucher Попробовал еще раз, получил следующее: / home / fatima / anaconda2 / bin / C++ -I / home / fatima / Downloads / xnet-master / lib -std = gnu ++ 1y -o CMakeFiles / test_xNet.dir / src / FullLayer .cpp.o -c /home/fatima/Downloads/xnet-master/src/FullLayer.cpp

Nerd Giraffe 31.10.2018 13:02

Он использует неправильный компилятор, вам следует использовать /usr/bin/g++-7.something. Найдите правильное имя gcc-7 и g ++ - 7 в папке / usr / bin, установите CC на имя gcc (/ usr / bin / gcc-7xxxx) и CXX на имя g ++, очистите папку сборки и начните снова .

Matthieu Brucher 31.10.2018 13:05

@MatthieuBrucher Где мне его установить? вот так: make CC = my_compiler?

Nerd Giraffe 31.10.2018 13:46

Я добавил это утверждение: make CXX = / usr / bin / g ++ - 7, и теперь ошибки следующие: [6%] Создание объекта CXX CMakeFiles / test_xNet.dir / src / FullLayer.cpp.o В файле, включенном из / home / fatima /anaconda2/include/xtensor/xarray.hpp:16:0, из /home/fatima/Downloads/xnet-master/src/mat.hpp:3, из / home / fatima / Downloads / xnet-master / src / FullLayer .hpp: 6, из /home/fatima/Downloads/xnet-master/src/FullLayer.cpp:1: /home/fatima/anaconda2/include/xtl/xsequence.hpp:29:14: ошибка: ожидаемое первичное выражение перед 'auto' decltype (auto) forward_sequence (A && s);

Nerd Giraffe 31.10.2018 13:50

@Matthieu Brucher C++ 14 включен в CMakeLists.txt для этого проекта. Проблема должна быть где-то в другом месте.

Michał Walenciak 31.10.2018 14:20

@ MichałWalenciak Есть ли обходной путь для этого? Мне действительно нужно запустить его к завтрашнему дню

Nerd Giraffe 31.10.2018 14:42

@NerdGiraffe: Я не могу взглянуть сейчас, но могу сделать это позже сегодня (через 6 часов).

Michał Walenciak 31.10.2018 14:45

@ MichałWalenciak Она использует компилятор C++ с поддержкой частичный C++ 14 (см. -Std = C++ 1y), но у нее есть доступ к gcc 7, так что это ошибка.

Matthieu Brucher 31.10.2018 14:56

@ MichałWalenciak Спасибо! : D

Nerd Giraffe 31.10.2018 16:09

@NerdGiraffe: Матье Брюхе прав. Вы должны использовать подходящий компилятор, как было предложено. Я не пользователь Ubuntu, поэтому не могу порекомендовать вам правильный путь.

Michał Walenciak 31.10.2018 18:03
1
19
187
0

Другие вопросы по теме