linux内核移植imx8,imx8移植opencv(3.0以上版本)笔记

基本步骤参考我同事的博客:https://blog.csdn.net/hunzhangzui9837/article/details/89846928 以下是在移植到imx8平台时的笔记和遇到的问题及解决办法:(其他平台一样的步骤,只是交叉编译工具链不一样而已) 1.Opencv编译去掉和关闭的模块: 关闭:gphoto2,WITH_GTK,WITH_TIFF,1394,cuda 打开:JPEG,PNG 配置完成,都要再次点击 Configure,点 Generate。 opencv_contrib编译 cmake-gui 找到 OPENCV_EXTRA_MODULES_PATH 项,选择扩展库源码 opencv_contrib-3.3.1 目录下的 modules 目录 配置完成,都要再次点击 Configure,点 Generate。

2.fatal error: linux/compiler-gcc5.h: 没有那个文件或目录 此错误的原因是交叉编译内核的gcc版本和本地系统Ubuntu的gcc版本不一致,Ubuntu的gcc版本高于内核gcc版本,采取降低Ubuntu的gcc版本,如下命令操作: gcc下降 安装 sudo apt-get install -y gcc-4.7 sudo apt-get install -y g++-4.7 重新建立软连接 cd /usr/bin #进入/usr/bin文件夹下 sudo rm -r gcc #移除之前的软连接 sudo ln -sf gcc-4.7 gcc #建立gcc4.7的软连接 sudo rm -r g++ #同gcc sudo ln -sf g++-4.7 g++ 可以通过 gcc -version 查看当前gcc版本 3.修改权限 chmod -R 777 opencv-3.3.1 文件夹目录下所有文件给最高权限

错误处理:

1.错误一 报错:undefined reference to `png_init_filter_functions_neon' 未定义的引用 交叉编译 opencv3.3.1 ffmpeg libpng 修改 ${HOME}/opencv-3.3.1/3rdparty/libpng/pngpriv.h  128 /*#  if (defined(ARM_NEON) || defined(__ARM_NEON)) && */ 为  129 #   if defined(PNG_ARM_NEON) && (defined(ARM_NEON) || defined(__ARM_NEON)) && \

2.错误二: zlib.h: No such file or directory 设置ZLIB_INCLUDE_DIRS 值为 /home/mico/software/opencv-3.3.1/3rdparty/zlib

3.在arm平台上运行提示没有GTK不能显示的错误,编译opencv的时候需要把QT编译进去

你可能感兴趣的:(linux内核移植imx8)