当前位置: 首页 > 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。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Therabody™明星产品TheragunⓇ筋膜枪,以科技健康助力舞台高光时刻
  • JVM上篇:内存与垃圾-回收篇05-本地方法接口和本地方法栈
  • 使用MicroApp重构旧项目
  • Java中Map、List、Set操作
  • 24年上半年天融信营收缩减1.8亿,亏损2.06亿
  • Java-自定义注解中成员变量是Class<?>
  • Processing练习之变换颜色
  • eNSP 华为三层交换机配置DHCP
  • C system()函数调用删除Windows临时目录下的所有文件
  • 《AI音频类工具之九——Stable Audio​ 》
  • 【前端】NodeJS:项目上线
  • Ubuntu视频工具
  • 编程参考 - 头文件中使用static inline
  • Spring Cloud Gateway 请求转发源码分析
  • AI预测福彩3D采取888=3策略+和值012路或胆码测试8月17日新模型预测第59弹
  • 345-反转字符串中的元音字母
  • JavaWeb(学习笔记二)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Markdown 语法简单说明
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • React 快速上手 - 07 前端路由 react-router
  • vue--为什么data属性必须是一个函数
  • 构建工具 - 收藏集 - 掘金
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于List、List?、ListObject的区别
  • 码农张的Bug人生 - 见面之礼
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 用mpvue开发微信小程序
  • 怎样选择前端框架
  • No resource identifier found for attribute,RxJava之zip操作符
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # SpringBoot 如何让指定的Bean先加载
  • (Note)C++中的继承方式
  • (SERIES12)DM性能优化
  • (十三)MipMap
  • (算法)前K大的和
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .a文件和.so文件
  • .Net 6.0--通用帮助类--FileHelper
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .net对接阿里云CSB服务
  • .NET中分布式服务
  • /run/containerd/containerd.sock connect: connection refused
  • @antv/g6 业务场景:流程图
  • @media screen 针对不同移动设备
  • [ 转载 ] SharePoint 资料
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [20150904]exp slow.txt