snap snap

気が向いたら書くブログ

Visual Studio で QT+OpenCV な開発環境を構築した

はじめに

もっとスマートに設定する方法がありそうなので、詳しい方教えてください...

目次

  • QT Creator でプロジェクトを新規作成
  • qmake コマンドで *.vsxproj ファイルを生成
  • とりあえず VS2012 で開いてみる
  • リンカー設定の修正
  • 一旦諦め...
  • とりあえず VS2013 で開いてみる
  • NuGet から OpenCV をインストール
  • 動作確認

QT Creator でプロジェクトを新規作成

QT Creator を起動し [新しいプロジェクト] を選択.

テンプレートは [アプリケーション]->[Qt Quick アプリケ−ション] を選択. その後の設定は特に変わったことをせず作成.

実行してみる.

f:id:mitake_ck:20141121164054p:plain

当然動く.

qmake コマンドで *.vsxproj ファイルを生成

次に qmake コマンドを用いて Visual Studio 用のファイルを生成する.

生成にはプロジェクトのルートディレクトリで以下のコマンドを発行すれば良い.

qmake -spec win32-msvc2012 -tp vc

f:id:mitake_ck:20141121164103p:plain

実行すると、[プロジェクト名].vsxproj[プロジェクト名].vsxproj.filters の 2 個のファイルが生成される.

とりあえず VS2012 で開いてみる

うん. とりあえず Visual Studio 2012 でプロジェクトを開いてみる.

そしてそのままビルドすると、以下のエラーが起こった.

エラー 1 error LNK1112: モジュールのコンピューターの種類 'x64' は対象コンピューターの種類 'X86' と競合しています。

f:id:mitake_ck:20141121164114p:plain

調べてみると、リンカーの設定を変更すれば直るっぽいエラーのようだった.

リンカー設定の修正

修正には この記事(error LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。) を参考にし行った.

が、しかし何度設定をやり直してもエラーが消えなかった...

一旦諦め...

いくらやってもエラーが取れないので、ご飯を食べた.

とりあえず VS2013 で開いてみる

何を思ったか、同じプロジェクトを Visual Studio 2013 で開いてみた.

すると.... なぜか実行できるようになった !!

f:id:mitake_ck:20141121171753p:plain

よくわからない.

NuGet から OpenCV をインストール

OpenCV の導入には NuGet を用います.

f:id:mitake_ck:20141121172141p:plain

バージョン 2.4.8 がインストールされました.

動作確認

Web カメラ画像を取得し表示させてみます.

f:id:mitake_ck:20141121164205p:plain

うまく動作しました.

要検証項目

  • VS2012 でリンカーエラーが消えない点
  • VS2013 ではなぜか正常に実行できる点

参考URL

10 million bugs in my code. @nanoris : error LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。