FrontPage | changes | index | create | search | preferences

0 はじめにやること

Last-Modified: Tue Nov 08 14:02 2011; Revision: 1.14; by momma
edit | copy | diff | history | raw
  1. ビルド環境のインストール
    1. VisualC++ 2008のインストール
    2. VisualC++ 2005のインストール(旧情報)
      1. Platform SDKのインストール(Visual C++ 2005のみ)
  2. OpenCV一式のインストール
  3. インクルードファイルパスの指定
    1. 正規の方法
    2. 変則的なやり方
  4. ライブラリファイルパスの指定
  5. OpenCVを使ったアプリケーションを他のマシンで動かす場合
  6. msvcrXX.dllのランタイムエラーを防ぐには
    1. スマートな方法
    2. 旧情報

Windowsでの開発環境構築についてのまとめ ※Ver. 1.x環境

[edit]

ビルド環境のインストール

[edit]

VisualC++ 2008のインストール

Windows/VisualC/2008を参照。 基本的な動作に必要なPlatform SDKは含まれている。

[edit]

VisualC++ 2005のインストール(旧情報)

コンパイラが無いと話にならないので、持ってない場合はWindows/VisualC/Installを参照。

Platform SDKのインストール(Visual C++ 2005のみ)

highgui.hがwindows.hを必要とするので、ウィンドウを開くアプリケーションはPlatform SDKが必須となる。

詳細はPlatform SDK参照

インストール先はCustomインストールでC:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\にしておく。

[edit]

OpenCV一式のインストール

配布元からインストーラ(opencv-win)を拾ってきて実行するだけ。 パスの指定も勝手にやってくれる。

[edit]

インクルードファイルパスの指定

VCでのインクルードパスの追加を参照のこと

[edit]

正規の方法

以下のフォルダをインクルードファイルパスで指定する

  cv\include
  cvaux\include
  cxcore\include
  otherlibs\cvcam\include
  otherlibs\highgui
  ml\include
[edit]

変則的なやり方

ヘッダファイル(*.h, *.hpp)とライブラリファイル(*.lib)はOpenCVのフォルダ以下に散り散りになってしまっていて、後々の扱いが面倒なので一箇所にコピーしてしまう。 (但しバージョンアップの際に旧バージョンが残らないように注意する必要がある) ※好みの問題もあるので嫌な人は、↑の正規の方法でインクルードパスを指定する。

ヘッダファイルは以下のフォルダの.hと.hppをコピーする。

  cv\include
  cvaux\include
  cxcore\include
  otherlibs\cvcam\include
  otherlibs\highgui
  ml\include

ヘッダファイルはそれぞれ必要に応じてincludeする。ライブラリはヘッダファイルに応じてWindows/VisualC/プロジェクトへのライブラリの追加を参照して追加する。

VCでのインクルードパスの追加を参照してC:\Program Files\OpenCV\includeを追加。

[edit]

ライブラリファイルパスの指定

ライブラリファイルはC:\Program Files\OpenCV\libに入っているので、VCでのライブラリパスの追加を参照してC:\Program Files\OpenCV\libを追加。

[edit]

OpenCVを使ったアプリケーションを他のマシンで動かす場合

当然だが開発した環境ではすんなり動くが、ほかの環境だとOpenCVのdllとmsvcvr90.dllが無いと言われて動かない。 OpenCVのdllはインストール先のbinフォルダに.dllファイルがあるので作成した.exeファイルと一緒に置くと良い。 msvcrXXはマイクロソフトで再頒布可能ファイルとして配っているので拾ってインストールする。

[edit]

msvcrXX.dllのランタイムエラーを防ぐには

[edit]

スマートな方法

プロジェクトのプロパティの[リンカ]-[マニフェストファイル]-[追加のマニフェスト依存関係]に以下の内容を追加する。

  type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'

バージョン等はdllの置いてある

  C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375

のようなフォルダ名に対応している。

msvcr80の場合は下の旧情報を参考にバージョンを変えて設定すると、manifestファイルを作ったりdllを置く必要がなくなる。

[edit]

旧情報

以下の内容のファイルをMicrosoft.VC80.CRT.manifestとしてdllと共にプログラムと同じフォルダにおく必要がある。

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <!-- Copyright c 1981-2001 Microsoft Corporation -->
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <noInheritable/>
      <assemblyIdentity 
          type="win32" 
          name="Microsoft.VC80.CRT" 
          version="8.0.50608.0" 
          processorArchitecture="x86" 
          publicKeyToken="1fc8b3b9a1e18e3b"
      />
      <file name="msvcr80.dll"/>
      <file name="msvcp80.dll"/>
      <file name="msvcm80.dll"/>
  </assembly>
[edit]

Powered by WiKicker

日本大学理工学部へ 電気工学科へ 計測工学研究室へ