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

RK3588 源码编译 opencv

从你的输出信息来看,系统已经安装了 libpng 1.6.37(最新版本),但 OpenCV 4.8.1 在编译时仍然找不到 png_set_longjmp_fnpng_get_eXIf_1 等符号。这表明 CMake 可能没有正确链接到系统的 libpng 库,或者 OpenCV 的编译配置存在问题。


解决方案

1. 检查 libpng 是否包含所需符号

运行以下命令,确认 libpng.so 是否包含 OpenCV 需要的符号:

nm -D /usr/lib/aarch64-linux-gnu/libpng.so | grep png_set_longjmp_fn
nm -D /usr/lib/aarch64-linux-gnu/libpng.so | grep png_get_eXIf_1
  • 如果有输出(如 T png_set_longjmp_fn),说明库没问题,问题出在链接阶段。
  • 如果没有输出,说明你的 libpng 版本可能不完整(尽管 dpkg 显示已安装最新版)。

2. 确保 CMake 正确找到 libpng

OpenCV 可能链接到了错误的 libpng 版本,或者 PNG_INCLUDE_DIR 设置不正确。手动指定路径:

cd ~/opencv-4.8.1/build
rm -rf CMakeCache.txt CMakeFiles  # 清理旧配置
cmake \-DWITH_PNG=ON \-DPNG_LIBRARY=/usr/lib/aarch64-linux-gnu/libpng.so \-DPNG_PNG_INCLUDE_DIR=/usr/include/libpng16 \..
  • PNG_LIBRARY:确保指向正确的 .so 文件(通常是 /usr/lib/aarch64-linux-gnu/libpng.so)。
  • PNG_PNG_INCLUDE_DIR:确保包含 png.h(通常是 /usr/include/libpng16)。

http://www.lryc.cn/news/581426.html

相关文章:

  • Java 大视界 -- Java 大数据在智能教育在线课程学习效果影响因素分析与优化设计(334)
  • Web后端开发-SpringBootWeb入门、Http协议、Tomcat
  • Spring Boot + 本地部署大模型实现:优化与性能提升!
  • Docker相关内容
  • 闲庭信步使用图像验证平台加速FPGA的开发:开篇语——跨越软件和硬件开发的鸿沟
  • string类(详解)
  • Linux关机指令详解:shutdown命令的使用指南
  • SpringAI与智能体入门
  • 成为git砖家(12): 看懂git合并分支时冲突提示符
  • Linux操作系统之文件(四):文件系统(上)
  • PADS交互式布局
  • PageRank:互联网的马尔可夫链平衡态
  • 线程锁和线程同步
  • Servlet学习
  • Spring--循环依赖以及三级缓存详解
  • Chat Model API
  • Altium Designer使用教程 第一章(Altium Designer工程与窗口)
  • Eureka和Nacos都可以作为注册中心,它们之间的区别
  • Java类变量(静态变量)
  • 【论文】微服务架构下分布式事务一致性解决方案设计与实践
  • 《数据维度的视觉重构:打造交互式高维数据可视化的黄金法则》
  • Java教程——深入学习guava之并发编程
  • 如何使用backtrace定位Linux程序的崩溃位置
  • Python练习Day1
  • 【C语言刷题】第十一天:加量加餐继续,代码题训练,融会贯通IO模式
  • 双倍硬件=双倍性能?TDengine线性扩展能力深度实测验证!
  • 类(JavaBean类)和对象
  • BM6 判断链表中是否有环(牛客)
  • Linux安装java后没法运行
  • 西门子PLC博图软件学习(一)