前回の続き。
Visual C++ 2008 Express EditionでOpenCV2.0を使ったアプリケーション開発をする際の注意点をいくつか。
1. コンパイルはDebugモードとReleaseモード両方で行う
前回はReleaseモードでコンパイルしたけど、開発時にDebugモードで開発を行う場合は、OpenCV2.0自体もDebugモードでコンパイルしておく必要がある。
Releaseモードで作成したライブラリ群をDebugモードで使おうとすると、色々とうまくいきません。例えば、2.0から新しく導入された画像読み込み関数のimread()がうまく動かない(画像を読み込めない)などの問題が起こります。
で、DebugモードとReleaseモードでそれぞれコンパイルするとlibファイルとdllファイルがそれぞれ作成されます。
前回の例だと、以下の場所にライブラリファイル群が作成されます。これらのファイルを適当なところにコピーしたり、開発環境からリンクしたりして使ってください。
- Debugモードで作成されるライブラリファイル
- C:\OpenCV2.0\VS2008\lib\Debug
- cv200d.lib
- cvaux200d.lib
- cvhaartraining.lib
- cxcore200d.lib
- cxts200d.lib
- highgui200d.lib
- ml200d.lib
- opencv_ffmpeg200d.lib
- C:\OpenCV2.0\VS2008\lib\Debug
-
- C:\OpenCV2.0\VS2008\bin\Debug
- cv200d.dll
- cvaux200d.dll
- cxcore200d.dll
- cxts200d.dll
- highgui200d.dll
- ml200d.dll
- opencv_ffmpeg200d.dll
- C:\OpenCV2.0\VS2008\bin\Debug
- Debugモードで作成されるライブラリファイル
- C:\OpenCV2.0\VS2008\lib\Release
- cv200.lib
- cvaux200.lib
- cvhaartraining.lib
- cxcore200.lib
- cxts200.lib
- highgui200.lib
- ml200.lib
- opencv_ffmpeg200.lib
- C:\OpenCV2.0\VS2008\lib\Release
-
- C:\OpenCV2.0\VS2008\bin\Release
- cv200.lib
- cvaux200.lib
- cvhaartraining.lib
- cxcore200.lib
- cxts200.lib
- highgui200.lib
- ml200.lib
- opencv_ffmpeg200.lib
- C:\OpenCV2.0\VS2008\bin\Release
2. OpenMPの使用に関して
VC++のExpress Editionでは、OpenMPをサポートしていないため、標準のままCMakeを使って作成したライブラリを使用すると、プログラム実行時に、
「アプリケーションを正しく初期化できませんでした (0xc0150002)」
というエラーが出ます。
これを解決するために、はCMakeをする時に
ENABLE_OPENMP
のチェックを外して下さい。