解决OSX升级到Sierra后,安装OpenCV报错:QTKit/QTKit.h file not found

2016-11-04 22:09:45来源:CSDN作者:ph1de2人点击

电脑上有OpenCV 2.4.13,在使用HomeBrew升级OSX到Sierra之后想安装OpenCV3,结果编译报错.这里贴出部分make记录:

[ 66%] Built target opencv_photo/tmp/opencv3-20161011-39738-1h8e3c8/opencv-3.1.0/modules/videoio/src/cap_qtkit.mm:46:9: fatal error: 'QTKit/QTKit.h' file not found#import <QTKit/QTKit.h>            ^1 error generated.make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_qtkit.mm.o] Error 1make[2]: *** Waiting for unfinished jobs....make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2make: *** [all] Error 2

这上面看到fatal error: 'QTKit/QTKit.h' file not found.于是Google了一下这个QTKit
找到有博客提出解决方案

关闭OSX的Rootless机制从未升级到10.12的Mac中复制QTKit.framework

这种方式能暂时的解决问题,但从OSX迭代的角度来看,会给后面带来系统混乱的隐患.

然后接着找到Apple的API Reference QTKit 提到OS X v10.9后的系统对QTKit.framework将不做支持,替代框架为AVFoundation .

##OverviewThe QuickTime Kit is a Objective-C framework (QTKit.framework) for manipulating time-based media. QuickTime Kit was deprecated in OS X v10.9. Use the AVFoundation framework instead.

然后到OpenCV和HomeBrew/Science 找有没有人提issue 和相应的解决方案.
发现OpenCV下面有相应的Pull Requests #7266并已经merge, 而merge后并没有发布新版本. 所以当前的master版本肯定已经把QTKit.framework替代为了AVFondation.framework.

接下来解决方案就出来了.
我使用brew来查看opencv的信息 看到有个--HEADOptions

brew info opencv3

--HEAD    Install HEAD version

所以安装的时候加上--HEAD就能安装当前的master版本.

brew install opencv3 --HEAD

然后一举成功

==> Summary  /usr/local/Cellar/opencv3/HEAD-73a8fa8_4: 285 files, 46.4M, built in 7 minutes 21 seconds

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台