фатальная ошибка при компиляции тестовых примеров pybind11 на raspbian

Следуя этому вопросу, я сейчас пытаюсь скомпилировать pybind11 тестовые примеры в соответствии с инструкциями здесь на Raspberry Pi. Что я сделал до сих пор:

  • Raspbian buster версии 10
  • Python 3.7.3
  • пункт 20.0.2
  • gcc 8.3.0

Затем, запустив команду make check -j 4, компилятор остановится на:

[68%] Создание объекта CXX CmakeFiles / pybind11_tests.dir / test_numpy_dtypes.cpp.o

и ошибки:

c ++: фатальная ошибка: завершена программа с завершением сигнала cplusplus

компиляция прекращена.

make [3]: *** [CMakeFiles / pybind11_tests.dir / build.make: 297: CMakeFiles / pybind11_tests.dir / test_local_bindings.cpp.o] Ошибка 1

make [3]: *** ждем незавершенных работ ...

make [2]: *** [CMakeFiles / Makefile2: 110: CMakeFiles / pybind11_tests.dir / all] Ошибка 2

make [1]: *** [CMakeFiles / Makefile2: 191: CMakeFile / check.dir / rule] Ошибка 2

make: *** [Makefile: 157: check] Ошибка 2

Буду признателен, если вы поможете мне понять, в чем проблема и как я могу ее решить.


person Foad    schedule 28.01.2020    source источник


Ответы (2)


Дополнительные исследования и использование правильный запрос ключевого слова, похоже, эта проблема не имеет ничего общего с bypynd11 или Raspbian в этом отношении. Проблема, похоже, связана с переполнением памяти, как описано в многочисленных сообщениях ранее (включая здесь и здесь). Решением может быть использование меньшего числа параллельных процессов -j <n> где n < 4 или вообще не использовать его, как это предлагается здесь. Например, я тестировал

make check -j 3

и это работает. Или, в качестве альтернативы, можно создать файл подкачки, как описано здесь.

person Foad    schedule 28.01.2020

Да, вам нужно создать первый файл подкачки. После этого вы сможете это сделать. Фактически файл подкачки увеличит вашу оперативную память. Он будет использовать пространство ROM для работы с оперативной памятью.

Пожалуйста, пройдите по ссылке ниже, это поможет вам.

https://youtu.be/Cr5mDFxvsb0

person Puneet    schedule 19.02.2020