Mac上OpenCV环境确实各种麻烦。。。也可能是我不熟悉的关系。。。总之,折腾了我N久才搞定。。。

linux和windows上也没那么纠结。。。


下面说一下我在配置环境中碰到的问题和解决的方法吧

对于mac上开发C++来说,最常用的一个东西就是MacPorts(http://www.macports.org/index.php)

用了下这个东西,感觉它应该就是一个toolchain,或者说,有点像ubuntu的软件包管理器的东西,各种在开发中需要用到的库或者开发环境都可以从里面获得,而且是傻瓜式安装,傻瓜式管理

那么,如何安装macports?这个其实官方文档或者网上都能搜到,在这里我就简单介绍下

1. 从官网(上文已经给出)下载最新的MacPorts安装包,然后解压

2.执行基本的安装三部曲:

   cd #解压出来的文件夹#

   ./configure

   make

   sudo make install

3.三步完成后,会提示你把路径添加到$PATH,忘记记录默认路径是什么了,我是直接找到相关文件复制到/usr/bin/下面,这样就不用改PATH了

 (修改PATH的方法主要就是用 export 语句修改 )

这样,MacPorts就算安装完成了

现在在控制台输入port以后,应该就会进入MacPorts的控制台了,当然我们不需要进入,输入quit,回车后退出MacPorts的控制台


当MacPorts安装完成以后,接下来别先急着下载OpenCV,我们还需要对MacPorts进行更新

执行:

   sudo port -v selfupdate

等待完成


好了!一切准备就绪,我们可以开始安装OpenCV了!

sudo port install opencv configure.compiler=llvm-gcc-4.2

那么我就uninstall了opencv重新加了参数安装。。。
这次奇葩了。。。
先是装到python2.7的时候提示无法激活,要强制激活,好吧。。那就强制激活。。。
然后装到ffmpeg的时候。。。居然告诉我。。。无法安装(看日志好像是ffmpeg无法识别我们指定的架构)。。。好吧,又是一通搜,终于被我找到了!!!
sudo port install opencv configure.compiler=llvm-gcc-4.2

之后再按照之前配置环境的步骤,我居然发现还是和之前一样的问题(详见1,2),我郁闷了,然后仔细研究了下XCode的选项,果断把C++ Language Dialect 改成GNU98

然后成功编译通过,链接通过

简单的载入了一张图片,然后显示出来,毫无问题,所以我怀疑,到问题2的时候就可以用这个方法进行解决的