MacOS下在Xcode里搭建OpenCV开发环境

  T____T~~~~~~~~~~ 仅记录我在Xcode里搭建OpenCV踩过的坑,这个过程特别曲折,本人从19/3/25到19/3/29足足花了五天才配置好这个环境orz。。。中间经历过无数次找死的操作,且听我慢慢讲来。

回顾:

  本人开始搭建环境时使用的是 10.11 El Capitan版本的MacOS,但此时苹果的系统最新版已经到 10.14.4 Mojave。我先像以前使用Windows系统一样登陆官网https://opencv.org/releases.html下载Mac版本的安装包,解压后发现只有源码,根本没有动态链接库。然后我上网搜索了MacOS下带库文件的OpenCV的安装,查到用Homebrew安装的OpenCV就自带动态链接库。然后我照着流程安装了Homebrew(当时有一个提醒是我的操作系统版本过低,因为安装的是最新版Homebrew,可能在之后的使用中会出现一定的问题,我当时每当一回事儿,但后面我才发现这才是阻碍我配置环境的最大的阻碍。。。。。),然后使用brew install opencv命令安装,结果在安装opencv软件包依赖的库文件pcre时,发生了错误,系统提示该软件在make test的过程中出现了编译错误。因为想到了之前的提示,我想可能是因为这个最新版的pcre和我的操作系统不兼容,那不然我下载个较低版本的pcre包好了(这想法应该没错),然后我确实就去官网https://ftp.pcre.org/pub/pcre/ 下载了一个较低版本的pcre(我真是傻,因为后来我发现还有其他办法,我后面会提到,你们可以试试),根据PCRE的安装及使用这篇文章和/Users/‘your username‘/Library/Logs/Homebrew/pcre/03.make的参数设置重新编译安装了pcre软件包,然后重新执行brew install opencv命令,结果发现自己安装的pcre包Homebrew根本就识别不了,它会报错然后建议你reinstall pcre。然后我用尽了各种方法企图让Homebrew正确识别我安装的pcre,但由于一时心急,不小心使用错命令行把/usr/local/bin文件夹及其文件删除,后面花费3个小时使用 find / -name ‘your file name‘ 命令在系统中一个个查找原文件位置然后拷贝回/usr/local/bin文件夹然后使用时被告知 Error: Permission denied,然后使用搜索引擎发现一个解决方案:sudo chown $(whoami) /usr/local/bin (chown——更改文件或目录的所属用户),但是始终心里有点不舒服,但这个情绪暂时被搁置了。其实找回来后brew命令就可以使用了,但还是还是出同样的错误,就想是不是Homebrew在安装时有问题,不然卸载后重装好了,就运行了卸载命令,结果有文件没卸干净,就手动卸载一个粗暴地把原来/usr/local中的文件全删了,好家伙,在我重新安装homebrew的时候,就开始不停报错了,出现git: libpcre2.dylib are not loaded,我这才发现,我好像把不该删的删除了,然后我在网上单独下载了pcre2文件重新编译安装,然后又执行Homebrew Install,libpcre2.dylib好了,又显示另外一个依赖库没装,周而复始。。。。。。我这才发现,没法补救了,现在Homebrew都安装不了了,还安装个屁的opencv啊。。。然后我又把主意打到OpenCV的源码上,既然Homebrew安装不了OpenCV,那我只好自己去编译安装好了,这里我给一个地址 Mac下opencv的配置,有需要的同学可以参考着试试,里面教了如何自己编译安装OpenCV,但因为我自己当时心情已经崩溃了,根本不想再找教程,就直接粗暴地重装了系统(亲们重装系统记得备份文件哈),然后发现··········我去简直一切顺利呀。。。。。。。。。不过我不建议大家重装系统,这是下下下下下下下下下下下下策(因为备份需要时间,然后你以前安装的软件,现在又要重新配置了,如果又遇到什么问题了咩...........),而且我后面思考了一下,觉得还是可以有其它挽救的办法的,我后面会说的,大家可以参考着试试。

正文:

1、安装Homebrew

安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

卸载

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

命令可能改变,最好参照官网进行操作,官网地址:https://brew.sh/index_zh-tw.html

这个命令安装的是Homebrew的最新版,  可能会和你的当前OS版本不兼容,注意一下,这个在安装的时候会有提示,我建议Homebrew和os版本一定要匹配,不然后续可能出现问题,不过也可以先试试后面的步骤,不能成功安装OpenCV再返回第一步解决这个问题。

解决Homebrew与OS版本不兼容的问题

方法一(推荐):先正确卸载Homebrew,再将自己的操作系统升级到最新版,再重新安装Homebrew。PS: 一定要先卸载再升级,如果不重新安装Homebrew只升级系统,不兼容的问题还是没办法解决(我也不知道为什么),但是系统升级后用命令卸载Homebrew就卸不干净了,需要手动卸载一些文件,然后就会像我一样误删东西。。。。。哭??

方法二:老哥没办法了,重装系统吧。。要最新版本的,记得备份重要文件噢

2、安装OpenCV

brew install opencv

你会发现,当Homebrew和OS兼容后,这个步骤是多么地顺畅啊~~~~~~~不过这种命令(brew install + 目标包名)下载的都是最新版本的包,我当时下载的就是OpenCV4.0.1,如果你不想要OpenCV4怎么办?

这时候我们就要先了解brew的一些操作命令了 具体参考 Homebrew基本操作命令

里面有个 brew search 命令, 该命令能帮你搜索你所需要的包的可下载版本

brew search opencv

里面有3个版本可让你下载,其中我的电脑上下载了OpenCV2和OpenCV3,它会自动在你下载好的版本后面??

知道了对应版本的包名,就可以使用命令下载了

brew install opencv@3

同时,我在回顾里提过的我当时想下载一个较低版本的pcre包,就去官网下载了个版本自己编译,还识别不出来,其实根本就不用这么麻烦啊,直接brew查找啊

额。。。。。。我发现好像不对哎,pcre只有一个,pcre2不知道是不是pcre的升级,但是安装opencv依赖的是pcre包而不是pcre2。。。不管啦,跳过。。。

这个时候,你所需要的OpenCV指定版本就装好啦,可用 brew info 命令进行查看

3、在Xcode里配置OpenCV

找到工程文件的配置文件,在TARGETS——Build Settings中搜索Search Paths,在Header Search Paths中填入OpenCV3的头文件的所在路径,在Library Search Paths中填入OpenCV3的动态链接库的所在路径,我的是

/usr/local/Cellar/opencv@3/3.4.5/include 和 /usr/local/Cellar/opencv@3/3.4.5/lib

配置好运行,出现错误?

网上一查,发现一个解决方案:http://www.cnblogs.com/sparkmorry/p/3527624.html

赶紧试着解决一下,将编译器换掉,结果出现新的错误?

因为OpenCV的core文件依赖cstddef文件,所以只能使用LLVM C++ Standard Library with C++11 support这个编译器,这个编译器还没法改!!!!

那该怎么办??我想着既然原来的编译器识别不了OpenCV的库文件所在目录吧,那就用其它的方法把OpenCV的动态库链接进来。于是又在网上搜教程,找到一个解决方案:

在工程文件的配置文件找到TARGETS——Build Phases中找到 Link Binary With Libraries ,点击?号手动添加OpenCV的动态库,结果发现,这个路径搜索界面根本就到不了/usr/local的目录,那要怎么添加OpenCV的动态库呢?往下看吧,有解决方案。

我先将/usr/local/Cellar/opencv@3/3.4.5旗下的文件制作替身(就是源文件的链接),并将替身移动到添加动态库索引界面可以到达的位置,然后就可以凭上面的操作成功添加OpenCV的动态链接库啦~~~~~下面是添加成功的截图

 4、运行程序

//
//  main.cpp
//  opencvTest
//
//  Created by xxmeng on 2019/3/29.
//  Copyright © 2019 xxmeng. All rights reserved.
//

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, const char * argv[]) {
    // insert code here...
    Mat image;
    image = imread( "/Users/xxmeng/Projects/CplusProjects/opencvTest/baby.jpg", cv::IMREAD_ANYCOLOR);

    if(!image.data )
    {
        printf( "No image data \n" );

        return -1;
    }

    namedWindow( "Display Image", WINDOW_AUTOSIZE );

    imshow( "Display Image", image );

    waitKey();
    //return
    return 0;
}

OK......总算成功了,撒花庆祝??????~~~~~~~以上,是我所有的经历。。若有帮助到需要的人,我会很开心让大家少走弯路哈哈

原文地址:https://www.cnblogs.com/dmzxxmeng/p/10630023.html

时间: 2024-10-07 04:19:39

MacOS下在Xcode里搭建OpenCV开发环境的相关文章

ezgo下安装eclipse及搭建android开发环境

1. JDK 即 Java Development Kit,Java 开发工具包 ezgo11 本来就已预装和配置了JDK,因此不需要再去下载安装,也不许要配置环境 验证:打开终端 $ java -version 2. 安装SDK Android SDK,即 Android Software Development Kit,Android 软件开发工具包. 下载地址:get android SDK 这里我是下载SDK only(在页面的下方有一个[DOWNLOAD FOR OTHER PLATF

MSCV2013搭建OpenCV开发环境

我这里编译的库是通过手动编译的. 1. 首先设置系统的环境变量: D:\3rdPartLib\opencv-2.4.9\build\vs2013\install\x64\vc12\bin 2. 指定包含“文件目录”路径,不区分Debug和Release模式: D:\3rdPartLib\opencv-2.4.9\build\vs2013\install\include 3. 指定“库目录”,Debug和Release模式设置相同: D:\3rdPartLib\opencv-2.4.9\build

Windows下visual studio code搭建golang开发环境

Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang的开发环境. 开发环境: 一.安装 这里我用需要安装一些工具: 1.Visual Studio Code 1.0.0 2.Golang下载 这里我使用的是Go1.6. 3.git下载 这一步跟建环境没什么关系, 但是之后要引

windows下VisualStudio和QtCreator搭建Qt开发环境

一.简介 集成开发平台IDE都有各自的长处,编写Qt程序可根据自己的喜好来选择相应的IDE.下述文章都是装载博友的文章,其中有很多细节还得自己调整. 二.详解 1.VisualStudio搭建Qt开发环境 Visual Studio中文官方网站 Visual Studio所有下载 (1)Visual Studio Community 2013 1.选择Community 2013,下载安装 2.安装完Visual Studio默认是英文,如果对英文不感冒的童鞋,可以下载中文语言包. 3.安装完成

在win10下使用docker快速搭建ruby开发环境

docker在windows下发力的时候必将取代各种虚拟机,并改变程序员的开发习惯,或许还会改变infra的工作. 概要: 在Windows下搭建开发环境一直是infra(我)头疼的事情.为了解决这个问题,跟老板,程序员商量得出的解决办法有以下几种:1.Mac下开发.优点是搭建环境方便,缺点是需要熟悉mac操作.2.Linux下开发.优点也是搭建环境方便,缺点是需要熟悉linux操作.而且UI比Mac难看. 为了方便日常交流,最后变成使用win系统,VNC到linux下开发.还有一种是开虚拟机,

win7下在eclipse中搭建cocos2d-x开发环境

1.    eclipse下载. 进入eclipse官网下载 Eclipse standard 4.4 ,  下载页面: http://www.eclipse.org/downloads/ 2.    ADT插件下载 :  http://developer.android.com/sdk/installing/installing-adt.html 3.    Android SDK下载:http://developer.android.com/sdk/index.html (也可以下捆绑的,e

Hadoop 在Windows7操作系统下使用Eclipse来搭建hadoop开发环境

1. 需要下载hadoop的专门插件jar包 hadoop版本为2.3.0,hadoop集群搭建在centos6x上面,插件包下载地址为:http://download.csdn.net/detail/mchdba/8267181,jar包名字为hadoop-eclipse-plugin-2.3.0,可以适用于hadoop2x系列软件版本. 2. 把插件包放到eclipse/plugins目录下 为了以后方便,我这里把尽可能多的jar包都放进来了,如下图所示: 3.重启eclipse,配置Had

centos7下docker-ce19.03.2搭建本地开发环境(mysql5.7,RabbitMQ3.7.7-management,redis5.0.5)

yum remove docker docker-common docker-selinux docker-engine -- 卸载旧版本yum install -y yum-utils device-mapper-persistent-data lvm2 -- 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum-config-manager --add-repo https://download.docker.co

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的好处:可以调试的时候看OpenCV的源代码. 重编译要得到的东西:Debug版本和Release版本的dll,lib,头文件.(dll添加到环境变量里,运行时用,自己编译的dll调试时可以跟踪到Opencv的源码内:lib和头文件配置到编译器里) PS:如果只是使用Opencv而不需要跟踪源码,则使用Opencv自带的库文件即可.跳到5配置Opencv开发环境,对应的文件都在..\opencv\b