当前位置: 首页 > news >正文

RV1126交叉编译OPENCV的各种坑

准备编译选项

传统Linux环境下的RV1126,最重要的选择正确的编译工具链。版本为arm-gcc-8.3。即便ubuntu能够直接apt-get安装gcc-arm-8也不能正常使用。因此,提前准备好工具链的路径和环境变量。

cmake -D CMAKE_BUILD_TYPE=RELEASE       -D CM
AKE_INSTALL_PREFIX=./install       -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.4/modules       -D BUILD_SHARED_LIBS=OFF       -D CMAKE_SYSTEM_NAME=Linux       -D CMAKE_C_COMPILER=/opt/gcc-arm-8.3/bin/arm-linux-gnueabihf-gcc       -D CMAKE_CXX_COMPILER=/opt/gcc-arm-8.3/bin/arm-linux-gnueabihf-g++       ..

编译

make -j$(nproc)

zlib.h: No such file or directory

请添加图片描述
是由于anaconda虚拟环境改变了原有的环境变量。除了推出虚拟环境,还需要删除cmake文件进行重新配置,否则仍会以之前的配置进行编译:

conda deactivate
rm -r ../build/*
cmake -D CMAKE_BUILD_TYPE=RELEASE            \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.4/modules      \
-D BUILD_SHARED_LIBS=OFF       \
-D CMAKE_SYSTEM_NAME=Linux      \
-D CMAKE_C_COMPILER=/opt/gcc-arm-8.3/bin/arm-linux-gnueabihf-gcc       \
-D CMAKE_CXX_COMPILER=/opt/gcc-arm-8.3/bin/arm-linux-gnueabihf-g++       \
..

undefined reference to `png_do_expand_palette_rgb8_neon‘

此为低版本编译器编译高版本opencv会遇到的问题,具体原因未考证。
打开opencv源码目录,编辑文件 gedit 3rdparty/libpng/pngpriv.h
将原本的第130行注释掉,改成下面的样子

 /* #  if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \ */# if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \defined(PNG_ALIGNED_MEMORY_SUPPORTED)#     define PNG_ARM_NEON_OPT 2#  else#     define PNG_ARM_NEON_OPT 0#  endif#endif

继续进行编译:

make -j$(nproc)

http://www.mrgr.cn/news/2714.html

相关文章:

  • 移动端页面出现闪屏
  • (八)Flink Join 连接
  • 五、SPA 单页面、MPA多页面的理解?它们的优缺点分别是什么?
  • Vue50 todolist自定义事件版本
  • 如何用ChatGPT 4.0创作高质量的小红书笔记?
  • 秋招力扣Hot100刷题总结——动态规划
  • HanLP分词的使用与注意事项
  • JsSIP Demo
  • 【自动驾驶】控制算法(三)轮胎侧偏与车辆动力学模型
  • MyBatis系列
  • 【adb】Mac配置adb环境踩坑记录
  • java版知识付费saas租户平台:剖析现代知识付费平台的功能架构与运营逻辑
  • Ubuntu下通过Docker部署Synapse服务器技术博客
  • 排序(归并排序,非比较排序)
  • Java面试篇(多线程相关专题)
  • 六、什么是SEO优化(搜索引擎优化)?SPA单页面应用如何实现SEO优化?
  • RCE编码绕过--php://filter妙用
  • Linux驱动开发基础(中断)
  • 【YOLO5 项目实战】(4)红外目标检测
  • [C++] map、set的 红黑树 封装(一)