树莓派4(RaspberryPi4)安装OpenCV4
2019-08-20 本文已影响4人
404d67ac8c12
如何去安装 OpenCV 4 到树莓派,已经有很详细的教程,而且我也是按照该教程去操作的,但中间还是会有问题,并进行了以下记录。
环境准备
我没有严格按照上面的教程去执行,开始的时候执行了 Step #2 和 Step #3,也没有去使用 Step #4 的虚拟环境,但需要升级 Step #4 的 pip
以及执行 pip install numpy
。
编译 OpenCV4
按照教程执行 Step #5 的 make -j 4
时候出现了问题,如下:
/usr/bin/ld: ../../lib/libopencv_core.so.4.1.1: undefined reference to '__atomic_fetch_add_8'
/usr/bin/ld: ../../lib/libopencv_core.so.4.1.1: undefined reference to '__atomic_fetch_sub_8'
/usr/bin/ld: ../../lib/libopencv_core.so.4.1.1: undefined reference to '__atomic_store_8'
/usr/bin/ld: ../../lib/libopencv_core.so.4.1.1: undefined reference to '__atomic_load_8'
/usr/bin/ld: ../../lib/libopencv_core.so.4.1.1: undefined reference to '__atomic_compare_exchange_8'
collect2: error: ld returned 1 exit status
make[2]: *** [modules/core/CMakeFiles/opencv_perf_core.dir/build.make:541: bin/opencv_perf_core] Error 1
make[1]: *** [CMakeFiles/Makefile2:2597: modules/core/CMakeFiles/opencv_perf_core.dir/all] Error 2
make: *** [Makefile:163: all] Error 2
提示:Make error undefined reference to '__atomic_fetch_add_8'。
进行搜索后,找到了该篇文章 Make error __atomic_fetch_add_8 on RaspberryPi4,需要在 cmake
中添加 -DCMAKE_SHARED_LINKER_FLAGS='-latomic'
, 重新 cmake
后成功。
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-DCMAKE_SHARED_LINKER_FLAGS='-latomic' \
-D BUILD_EXAMPLES=OFF ..
注意:OPENCV_EXTRA_MODULES_PATH
的路径请填写正确,开始时我写的路径不对,cmake
一直不通过。
调整 SWAP 大小
我使用的是 RaspberryPi4 2G 内存,感觉内存很大然后就飘了,最后没有编译通过。切记,一定要执行 Increase the SWAP on the Raspberry Pi 的部分。不过 4G 内存的同学可以绕过。
结束
剩下的步骤安装教程走就可以完成安装。