树莓派4安装OpenCV遇ImportError错误,求正确安装及解决方法
解决树莓派4 OpenCV导入错误:undefined symbol: __atomic_store_8
问题描述
树莓派4上安装OpenCV 4.5.1与Python3.9.2后,执行测试代码时出现以下错误:
ImportError: /usr/local/lib/python3.9/dist-packages/cv2/cv2.abi3.so: undefined symbol: __atomic_store_8
测试代码(注:原代码为Python2语法,Python3需修正为如下形式):
import cv2 print(cv2.__version__)
解决方案
方法1:临时加载libatomic库
运行Python前先执行以下命令,临时设置环境变量:
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
之后再运行测试代码,若正常工作,可将该命令添加到~/.bashrc文件末尾,实现永久生效:
echo "export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1" >> ~/.bashrc source ~/.bashrc
方法2:重新编译OpenCV时添加链接参数
如果是通过源码编译安装的OpenCV,重新编译时添加-latomic链接选项:
- 进入OpenCV的build目录(若已删除则重新创建)
- 重新执行cmake配置:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_LINKER_FLAGS="-latomic" \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D PYTHON_EXECUTABLE=/usr/bin/python3.9 \ -D BUILD_EXAMPLES=ON ..
- 编译并安装:
make -j4 # 树莓派4可用4核编译 sudo make install sudo ldconfig
方法3:确保libatomic库已安装
先更新软件源并安装libatomic1:
sudo apt-get update sudo apt-get install libatomic1
内容的提问来源于stack exchange,提问作者etnol
相关产品推荐
相关产品推荐

