音ノ木坂学院

叶え!みんなの夢――

0%

OpenCV2/3安装+Xcode7环境配置(更新常见问题)

最终环境:

  • OS X EI Capitan
  • OpenCV3
  • Xcode 7.2

编译安装

编译安装的过程OpenCV2和3都一样,先下载源代码,解压,进入文件夹

1
2
3
4
5
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install

安装完成后文件头文件在/usr/local/lib中,库文件在/usr/local/include中。

安装过程中需要下载ippicv_macosx_20141027.tgz,如果下载不成功的话就手动下载,丢到报错的目录下,即可解压完成安装。

之后在Xcode中新建工程,在Build Settings -> Search Paths -> Header Search Paths 和 Library Search Paths中分别添加/usr/local/lib和/usr/local/include。
最后在文件目录里新建一个OpenCV Framwork的文件夹,右键添加文件,在弹出的窗口中输入/usr/local/lib,把OpenCV相关的dylib文件全部加进来。这个步骤中会把文件拷贝到工程目录下,所以删除的时候不必担心。
这样OpenCV就可以使用了。

Xcode编译选项

接下来在Xcode中配置。
首先打开工程文件的Build Settings,找到Search Paths,在Header里添加/usr/local/include,在Library里添加/usr/local/lib
之后有两种方法:

方法一(简单,推荐

在Library里继续添加/usr/local/lib/opencv,然后在工程上右键,Add Files。在打开的窗口中输入/usr/local/lib敲回车,把所有的.dylib文件都添加进来。

方法二

还在Build Settings里,找到Linking,在Other Linker Flags里添加如下一段:

1
-lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs   -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres   -lopencv_ts -lopencv_video -lopencv_videoio -lopencv_videostab

可以起到同样的方法。

Xcode输出配置

此时OpenCV可以使用,但是每次点击运行的话,生成的可执行文件都在/Users/$username/Library/Developer/Xcode/DerivedData/$ProjectName+$Hash/Build/Products/Debug下,非常难找。如果生成的可执行文件和VS一样在工程文件夹下就好了。
配置方法是,在Xcode中command+,打开设置,选择Locations Tab,点击Advanced。把Building Location从Unique改成Legacy。这样文件调试就方便许多。

OpenCV头文件

编译的时候还应该添加头文件,绝大多数情况下这两个就够用了:

1
2
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"

也有说法是:

1
#include "opencv2/core/core.hpp"

可以满足大部分要求。
以及还可以加上:

1
#include "opencv2/imgproc/imgproc.hpp"

也无妨

最后

OpenCV不要用~/开头的相对路径
OpenCV不要用~/开头的相对路径
OpenCV不要用~/开头的相对路径
因为被坑了一晚上所以要说三遍!