您的位置:首页 > 编程语言 > Qt开发

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

2016-10-28 18:04 441 查看
电脑上有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 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [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 .

##Overview
The 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.


然后到OpenCVHomeBrew/Science 找有没有人提issue 和相应的解决方案.

发现OpenCV下面有相应的Pull Requests #7266并已经merge, 而merge后并没有发布新版本. 所以当前的master版本肯定已经把QTKit.framework替代为了AVFondation.framework.

接下来解决方案就出来了.

我使用brew来查看opencv的信息 看到有个
--HEAD
Options

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv sierra osx QTKit
相关文章推荐