概要

  • 久しぶりにOpenCVをソースコードがビルドしてみる。
  • ターゲットはWindows 7 (64bit)
  • OpenCVのバージョンは2.4.8
  • ビルド環境はVS2010
  • CUDAのバージョンは5.5
  • CMakeのバージョンは2.8.11.1
  • よりによって2013年の大晦日にリリースされるとは!
  • CMakeは、記事執筆時点(2014-01-01)で最新版は2.8.12.1

パッケージのダウンロード

  • まずはパッケージのダウンロード。http://opencv.org/ から OpenCV for Windows をダウンロードする
  • oepncv-2.4.8.exe というファイル名
    • 参考までにローカルのハッシュ値は
    • MD5: 33C0A6787F9CC3A87009CFE4570D519B
    • SHA-1: A31C54AF762AAF1377A2EA8A2B856F499A6EE739
    • SHA-256: 0CF6AA4A37D004F55D7008F42CB65499FAA8BDFD4D044AB4DC5CAC4B1C55BB7B
  • 実行すると、展開場所を指定させられる
    • 指定したディレクトリ以下に、
    • build
    • sources
    • の2つのディレクトリが作成される
  • buildディレクトリ
    • build済みのバイナリが入っている
    • pythonディレクトリやjavaディレクトリがある。(中身は多分pythonとjava用のライブラリ)
    • x86とx64ディレクトリがあり、それぞれ以下にvc10、vc11、vc12のディレクトリがある。
      • vc10:Visual Studio 2010
      • vc11:Visual Studio 2012
      • vc12:Visual Studio 2013
      • にそれぞれ対応する
  • sourcesディレクトリ
    • ビルドするためのソースコードなどがある
    • 今回はビルドするために、こちらを使う

ビルド前準備

  • ビルドするためにsourcesディレクトリ以下を配置させたい場所に移動させる
  • 今回はc:\OpenCV2.4.8に配置する
  • cmakeでソリューションファイルを作成する
  • cmake(GUI版を起動する)
  • Sourceの場所を指定する
    • 今回はC:/OpenCV2.4.8
  • Buildの場所を指定する
    • 今回は C:/OpenCV2.4.8/build を指定する。
  • Configureボタンを押す
  • こんな感じ
    cmake-configure.png
  • C:/OpenCV2.4.8/build が無いと文句を言われるので、ディレクトリの作成に同意する
  • コンパイラのバージョンを聞かれるので、Visual Studio 2010を指定する
    • 違うコンパイラを指定する場合はここでターゲットを変更する
  • しばらく待つと、ビルドの環境が表示される
  • とりあえずEXAMPLESだけチェックを入れてもう1度Configureを押す
  • CUDAのPATHとかがあると、自動で見つけてくれるらしい。
  • Configureを何回か押して、不足してる項目が消えると、赤い項目が消えて、Generateボタンが有効になる。
  • Generateボタンを押す
  • C:\OpenCV2.4.8\build\OpenCV.sln が作成される。

ソースコードのビルド

  • 前のステップまでで生成されたOpenCV.sln を Visual Studio 2010で開く
  • 大量にプロジェクトが読み込まれるので、バッチビルドする。
  • ビルド(B)→バッチビルド(T)でバッチビルド画面を出す
  • バッチビルドでALL_BUILDのdebug/release両方を選択する
    • いつの間にかTUTORIALSというプロジェクトファイルができている。どうチュートリアルなんだろう?
  • そしてビルドをクリックする。
  • 後は待つ。

トラブル

  • 間違えて最初、全てのプロジェクトファイルをビルドしたので、その後ALL_BUILDをビルドしたらCMakeからメッセージが出た
  • どうやら、ビルドしたせいでプロジェクトファイルの日付が狂ったようで、「リロードする?」ってメッセージが出ていた。
  • なお、ビルド時、キャンセルしようにもなかなかキャンセルできなかったので、タスクマネージャからnvccをkillした。
    • nvccはnVidiaのCUDA用コンパイラ

添付ファイル: filecmake-configure.png 1010件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-01-02 (木) 23:36:32 (1386d)