从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作为框架所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)