c – 在Mac OS X上安装OpenCV 3作为框架

c – 在Mac OS X上安装OpenCV 3作为框架,第1张

概述我想使用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脚本,如下所示: platforms / o 我想使用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脚本,如下所示:
platforms / osx / build_framework.py osx
(osx参数告诉脚本创建一个名为osx的目录来输出框架)

所有内容都顺利构建,因此我将osx目录中构建的框架添加到我的项目中.

令我惊讶的是,我的项目不会没有错误地构建.首先是以下两个问题.这是第一个截图:

如果第一个问题没有显示,opencv2.framework中每个头文件的#ifndef __cplusplus#错误将被触发.

事实证明问题是需要在Objective-C头之前调用C头,所以我将以下内容添加到项目的PCH文件中:

您实际上可以将此代码添加到需要opencv.hpp头文件的头文件中,而不是为项目创建PCH文件.您还应该确定说#include而不是#import,但它们都应该有效.

一旦我发现了这些问题,我仍然坚持使用39个未定义的符号来构建x86_64.

起初我认为该框架不包括x86_64版本,但快速检查显示它包括i386和x86_64版本的目标文件,并且我的项目设置都是正确的.
接下来,我查找了一些未定义符号的名称,发现它们是名为OpenCL的项目的一部分. OpenCL应该加速一些功能,并包含在opencv3中.起初我认为该模块没有构建,但在阅读build_framework.py构建脚本后,我发现它是从CMakeLists.txt文件获取其设置.阅读本文表明,遵循OpenCL标志:
WITH_OPENCL
WITH_OPENCLAMDFFT
WITH_OPENCLAMDBLAS
正在设定

稍微阅读让我相信Mac OS X El CAPItan与OpenCL不兼容,因为它似乎需要内核支持.所以我改变了CMakeLists.txt文件,不添加“AND NOT APPLE”来构建OpenCL
WITH_OPENCL
WITH_OPENCLAMDFFT
WITH_OPENCLAMDBLAS

在更改了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

总结

以上是内存溢出为你收集整理的c – 在Mac OS X上安装OpenCV 3作为框架全部内容,希望文章能够帮你解决c – 在Mac OS X上安装OpenCV 3作为框架所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存