Visual Studio 2015 でOpenCV2.xを使う (第2回)
前回はCMakeを使ってVisual Studio 2015用のOpenCVプロジェクトを生成するところまで紹介しました。
今回は、OpenCVプロジェクトのビルドから動作確認までを見ていきたいと思います。
1. OpenCVプロジェクトのビルド
(Generate実行後)CMakeの [Open Project] ボタンをクリックするか、buildフォルダにある "OpenCV.sln" を開くと、Visual Studio 2015が起動し、ソリューション "OpenCV" が読み込まれている状態になります。
まずはDebug用のバイナリとライブラリファイルを生成したいと思うのので、ソリューションの構成が「Debug」になっていることを確認します。(32bit用の場合は「Win32」、64bit用の場合は「x64」になります)
ソリューションをビルドします。Debugの場合はあまり時間がかからなかったです。
ビルド中は下方にある出力ウィンドウにログが出力されます。ビルドが完了するとその旨が出力ウィンドウに表示されます。エラーや失敗がないことを確認して下さい。
ビルドが正常に終了したら、ソリューションの構成を「Release」に変更して、同様にビルドを行ないます。
以上で、Debug用とRelease用のバイナリとライブラリファイルが生成されたことになります。場所としてはbuildフォルダの下に "bin" と "lib" が作られており、その中にそれぞれ "Debug" と "Release" がある構成になっています。
C:\opencv └─ opencv-2.4.13 ├─ build ├─ sources ├─ LICENSE.txt ├─ README.md.txt └─ build_x86 ├─ bin | ├ Debug | └ Release └─ lib ├ Debug └ Release
2. バイナリとライブラリファイルを配置する
このままのフォルダ構成でも問題はないのですが、見通しをよくするためにファイルを再配置します。
もともとあるOpenCVのbuildフォルダを見てみると、以下のような構成になっています。
C:\opencv └─ opencv-2.4.13 ├─ build | ├─ x86 | | ├─ vc11 | | └─ vc12 | | ├─ bin | | └─ lib | └─ x64 | ├─ vc11 | └─ vc12 | ├─ bin | └─ lib ├─ sources ├─ LICENSE.txt ├─ README.md.txt └─ build_x86
つまり、buildの下に "x86"(32bit用)と "x64"(64bit用)があり、その下にそれぞれ "vc11"(Visual Studio 2012用)と "vc12"(Visual Studio 2013用)があって、その中に "bin"(バイナリ)と "lib" ライブラリファイルがあることになります。
このフォルダ構成になって、vc14(Visual Studio 2015用)のフォルダを作ってそこに先ほどビルド生成したバイナリとライブラリファイルを配置したいと思います。
なお、再配置するファイルは以下の拡張子のものになります。
- exe
- dll
- lib
拡張子がpdb、ilk、expのものはVisual Studioのプロジェクトが使用するファイルなので移動させる必要はありません。
3. OpenCVの動作確認を行なう
ビルド生成して配置したOpenCVのバイナリとライブラリファイルが正しく使えるか確認します。Visual Studio 2015 を起動させて適当な場所にコンソールアプリケーションのプロジェクトを作成します。
OpenCVのサンプルページを参考に適当にプログラムを書きます。
入出力 — OpenCV2 プログラミングブック リファレンス編
プロジェクトのプロパティを編集します。左方の「VC++ ディレクトリ」を選択し、「インクルード ディレクトリ」と「インクルード ディレクトリ」に以下をそれぞれ追加します。
インクルード ディレクトリ | C:\opencv\opencv-2.4.13\build\include |
ライブラリ ディレクトリ | C:\opencv\opencv-2.4.13\build\x86\vc14\lib |
Debug構成およびRelease構成でビルドできることを確認します。ソリューションフォルダの下に "Debug" フォルダと "Release" フォルダが出来ているので、dllファイルを "C:\opencv\opencv-2.4.13\build\x86\vc14\bin" よりそれぞれのフォルダにコピーします
コピー先 | コピー元 |
---|---|
ソリューション名/Debug | C:\opencv\opencv-2.4.13\build\x86\vc14\bin\Debug |
ソリューション名/Release | C:\opencv\opencv-2.4.13\build\x86\vc14\bin\Release |
「デバッグの開始」を実行してうまく動けばOKです。