c – 在Mac OS X上安装OpenCV 3作为框架
我想使用OpenCV在OS X El Capitan上制作应用程序.我决定使用2015年6月4日发布的最新版本3.0.0.我使用brew安装了2.4.x版本,但由于版本3现在有一个构建框架的osx构建脚本,我想使用它方法.
从OpenCV.org下载版本3后,我在opencv-3.0.0目录中打开了一个终端窗口并执行了build_framework.py脚本,如下所示: 所有内容都顺利构建,因此我将osx目录中构建的框架添加到我的项目中. 令我惊讶的是,我的项目不会没有错误地构建.首先是以下两个问题.这是第一个截图: 如果第一个问题没有显示,opencv2.framework中每个头文件的#ifndef __cplusplus#错误将被触发. 事实证明问题是需要在Objective-C头之前调用C头,所以我将以下内容添加到项目的PCH文件中: 您实际上可以将此代码添加到需要opencv.hpp头文件的头文件中,而不是为项目创建PCH文件.您还应该确定说#include而不是#import,但它们都应该有效. 一旦我发现了这些问题,我仍然坚持使用39个未定义的符号来构建x86_64. 起初我认为该框架不包括x86_64版本,但快速检查显示它包括i386和x86_64版本的目标文件,并且我的项目设置都是正确的. 稍微阅读让我相信Mac OS X El Capitan与OpenCL不兼容,因为它似乎需要内核支持.所以我改变了CMakeLists.txt文件,不添加“AND NOT APPLE”来构建OpenCL 在更改了CMakeLists.txt文件并再次构建框架之后,我的程序能够与opencv2.framework链接(不知道为什么他们仍称它为opencv2而不是opencv3)并运行. 我花了更多的时间来承认,所以我想我会在这里分享我的经验,希望能够让其他人免于让OpenCV 3使用他们的Mac OS X应用程序而感到沮丧.干杯! 解决方法
经过近2年,我遇到了同样的问题.但是,我找到了一个更体面的解决方案.
与您的想法相反,macOS实际上与OpenCL兼容,尽管它没有链接到OpenCV2.framework.在链接opencv2.framework之前,我尝试将我的二进制文件与liblapack.tbd,libcblas.tbd和OpenCL.framework链接起来,它就像魅力一样. 所以只需转到项目设置 – >构建阶段 – > Link Binary With Libraries并添加以下内容: Link Binary With Libraries section (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |