MacOSX SierraでOpenCV3がビルドできない場合の3つの対処法

久々にOpenCVをビルドしようとしたら3つ引っかかりうまく行かなかったので、対処法を書いておきます。

元々の参考になるOpenCVが出してるMacでOpenCV3系をビルドする方法はこれです。

ただ、残念ながら今はこれではうまくいかないです。
Cmakeでconfigureとgenerateしたまではいいけど、makeでコケるようになりました。

問題1) fatal error: ‘sys/types.h’ file not found

このようなエラーが出ます

これはXcodeのコマンドラインツールに関係したエラーです。
シェル上で以下のコマンドを実行してXcodeのコマンドラインツールをInstall or Updateすれば大丈夫です。

これで1つ目は通過。次にこのエラーが出ます

問題2) modules/videoio/src/cap_qtkit.mm:46:9: fatal error: ‘QTKit/QTKit.h’ file not found

これはQTKitが見つからないというものです。
CMakeでQT関係のチェックを入れて無くてもこれが出ます。
これはOpenCV3.0.0やOpenCV3.1.0などを使っていると出て来るエラーです。
QTがないとかじゃなくて、パスの問題らしいです。
それ以降のmasterブランチかそれより新しいOpenCVが出ている場合は(2016/12/19では3.1が最新)それを使えば大丈夫です。
gitでopencvを持ってきている人はmasterかそれより新しいバーjンををチェックアウトして再度やり直せばOKです。

問題3) modules/python/src2/cv2.cpp:6:10: fatal error: ‘Python.h’ file not found

99%までいってエラーです。しょげないでくださいね。
Python.hが見つからないエラーです。
解決策は2つあります。

  1. 正しいパスを与える
  2. opencv_python2をそもそも不要にする

まず1ですが、python.hの場所が間違ってるだけなので

のように正しいパスを与えればOKです。
もしくは「いや、pythonからopencvつかわないし。」というのであれば
CMakeにおいて
「BUILD_opencv_python2」のチェックを外してconfigure->generateすればそもそもビルドされないのでOKです。

コメントを残す