hank’s notebook

##macOs sierra下编译OpenCV

###编译

  • 官网下载OpenCV Sources,我下载的是2.4.9
  • 安装cmake,方法可以百度
  • 解压OpenCV-2.4.9.zip,执行如下步骤编译
    1. cd OpenCV-2.4.9
    2. mkdir release
    3. cd release
    4. cmake -G “Unix Makefiles” ..
    5. make
    6. sudo make install

###编译中可能会遇到的问题
1.

XXX/cap_qtkit.mm:46:9: fatal error:

‘QTKit/QTKit.h‘ file not found

#import 

^

1 error generated.

make[2]: *** [modulesideoio/CMakeFiles/opencv_videoio.dir/src/cap_qtkit.mm.o] Error 1

make[1]: *** [modulesideoio/CMakeFiles/opencv_videoio.dir/all] Error 2

make: *** [all] Error 2

百度了下,大概是说mac系统升级后QTKit有改动,Opencv找不到QTKit.h。解决方法是:下载QTKit.zip,解压之后拷贝到opencv-2.4.9/modules/highgui/src中再make

2.

opencv-2.4.9/modules/legacy/src/calibfilter.cpp:98:9: error:
      comparison of array 'this->latestPoints' not equal to a null pointer is
      always true [-Werror,-Wtautological-pointer-compare]
    if (latestPoints != NULL)
        ^
1
2
3
4
5
/Users/hebin/third_party/opencv-2.4.9/modules/legacy/src/calibfilter.cpp:532:9: error:
address of array 'this->latestCounts' will always evaluate to 'true'
[-Werror,-Wpointer-bool-conversion]
if( latestCounts )
~~ ^

2 errors generated.
make[2]: *** [modules/legacy/CMakeFiles/opencv_legacy.dir/src/calibfilter.cpp.o] Error 1
make[1]: *** [modules/legacy/CMakeFiles/opencv_legacy.dir/all] Error 2
make: *** [all] Error 2

解决方法,根据网页上的修改opencv-2.4.9/modules/legacy/src/calibfilter.cpp代码,再编译即可