Сбой сборки во время сборки OpenCV на Raspberry Pi с "ошибкой сегментации", вызванной "cc1plus" - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь собрать OpenCV 4.0.0 на моем Raspberry Pi 3B + и продолжаю сталкиваться с этой проблемой:

[ 83%] Building CXX object modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/opencl/perf_stitch.cpp.o

c++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
modules/stitching/CMakeFiles/opencv_perf_stitching.dir/build.make:62: recipe for target 'modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/opencl/perf_stitch.cpp.o' failed
make[2]: *** [modules/stitching/CMakeFiles/opencv_perf_stitching.dir/perf/opencl/perf_stitch.cpp.o] Error 4
CMakeFiles/Makefile2:23142: recipe for target 'modules/stitching/CMakeFiles/opencv_perf_stitching.dir/all' failed
make[1]: *** [modules/stitching/CMakeFiles/opencv_perf_stitching.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

Это часть скрипта make / build, которую я запускаю:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D PYTHON_EXECUTABLE=~/.virtualenvs/py3cv4/bin/python \
    -D WITH_GSTREAMER=ON \
    -D WITH_FFMPEG=ON \
    -D WITH_OPENMP=ON \
    -D BUILD_EXAMPLES=ON ..

echo ""
echo "======================="
echo "Building OpenCV..."
make -j4
sudo make install
sudo ldconfig

Я где-то читал, что должен изменить команду make -j4, чтобы не использовать все четыре ядра, потому что у меня заканчивается память. Я попытался make -j1, но все равно получил ту же ошибку в том же месте. Я собираюсь попробовать еще раз с простым make, но удалите все готовые вещи, которые там есть, и начните все заново, чтобы посмотреть, поможет ли это.

1 Ответ

0 голосов
/ 12 июля 2019

Оказывается, мне нужно было полностью удалить созданную мной сборку и перестроить ее с одним ядром вместо всех четырех, так как оно занимало слишком много памяти.Я удалил свой каталог /opencv/build/, а затем сделал make без команды -j, и все заработало нормально.Это заняло очень много времени (5+ часов), но завершилось успешно.Теперь мне нужно выяснить, почему я не могу import cv2 ...

...