- 久しぶりに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の場所を指定する
- Buildの場所を指定する
- 今回は C:/OpenCV2.4.8/build を指定する。
- Configureボタンを押す
- こんな感じ
- 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した。
Last-modified: 2014-01-02 (木) 23:36:32