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

mac编译opencv 通用架构库的记录

1,通用架构 (x86_64;arm64)要设置的配置项:

CPU_BASELINE

CPU_DISPATCH

上面这两个我设置成SSE_3,其他选项未尝试,比如不设置。

CMAKE_OSX_ARCHITECTURES:x86_64;arm64

WITH_IPP:不勾选

2,contrib库的添加:

第一次Configure后,搜索EXTRA,设置OPENCV_EXTRA_MODULES_PATH为 /Users/xxx/opencv_contrib-3.4.16/modules

3,如果只是编译c++的库的话,可以搜索下面的配置项,把它们取消勾选

跟python相关的配置项

跟java相关的配置项

跟test相关的配置项

跟example相关的配置项

4,最好是用命令行来编译。在cmake gui界面生成时,选择生成器为Unix Makefiles.

然后在build目录里:make -j8

5,链接错误:

Undefined symbols for architecture arm64:

  "_png_do_expand_palette_rgb8_neon", referenced from:

      _png_do_read_transformations in liblibpng.a(pngrtran.c.o)

  "_png_do_expand_palette_rgba8_neon", referenced from:

      _png_do_read_transformations in liblibpng.a(pngrtran.c.o)

  "_png_init_filter_functions_neon", referenced from:

      _png_read_filter_row in liblibpng.a(pngrutil.c.o)

  "_png_riffle_palette_neon", referenced from:

      _png_do_read_transformations in liblibpng.a(pngrtran.c.o)

ld: symbol(s) not found for architecture arm64

修改:opencv-3.4.16/3rdparty/libpng/pngpriv.h

第130行的

#  if (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

改为

# if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

6, 在configure过程中,会执行下载操作,一般都会失败。可以查看build/CMakeDownloadLog.txt,把需要下载的文件手动下载下来之后放到对应位置。具体的位置和文件名称,要尝试,主要根据CMakeDownloadLog.txt。

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

相关文章:

  • Python 向IP地址发送字符串
  • 上升响应式Web设计:纯HTML和CSS的实现技巧-1
  • 利用java结合python实现gis在线绘图,主要技术java+python+matlab+idw+Kriging
  • Android全面解析之context机制(三): 从源码角度分析context创建流程(下)
  • 执行docker compose命令出现 Additional property include is not allowed
  • STM32通过I2C硬件读写MPU6050
  • ubuntu2204-中文输入法-pycharm-python-django开发环境搭建
  • 【学习笔记】Matlab和python双语言的学习(一元线性回归)
  • LeetCode //C - 316. Remove Duplicate Letters
  • 【ARM+Codesys 客户案例 】RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:PCB板焊接机
  • 【二分查找】--- 初阶题目赏析
  • 【PostgreSQL003】PostgreSQL数据表空间膨胀,磁盘爆满,应用宕机(经验总结,已更新)
  • C语言第20天笔记
  • 为什么穷大方
  • HiveSQL实战——大数据开发面试高频SQL题
  • RabbitMQ集群 - 普通集群搭建、宕机情况
  • xssDOM型练习
  • python中的gradio使用麦克风时报错
  • Oracle(63)什么是临时表(Temporary Table)?
  • 《Techporters架构搭建》-Day06 国际化
  • Linux ACL 访问控制
  • hg transformers pipeline使用
  • 高性能内存对象缓存
  • 文件上传-CMS文件上传分析
  • 云原生日志Loki
  • 初阶数据结构之直接选择排序和快速排序
  • Java语言程序设计——篇十三(4)
  • 低代码: 组件库测试之渲染和元素获取,触发事件,更新表单,验证事件以及异步请求
  • 银河麒麟服务器操作系统Kylin-Server-V10-SP3-2403-Release-20240426-x86_64安装步骤
  • 2024年电赛H题全开源