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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值