Windows XPでopencvを使用してQtでguiアプリケーションを作成したいとします。以前はQtとopencvの両方を使用していましたが、決して一緒に使用しませんでした。長い話をすると、Qtでopencvの作業をすることができません。Windows上でQtとopencvで問題を構築する
私が検索したすべてのフォーラムでは、情報が散らばっているだけで、通常は答えはありません。ここではすべてのステップを要約します。
- Windows版Qt SDK(4.6.3)をダウンロードし、しばらく使用しました。
- Windows用のopencv 2.3.1 megapackをダウンロードし、バイナリを追加しました。私はopencvを含む私のQtプロジェクトをコンパイルすることに成功しましたが、opencv関数呼び出しがクラッシュしました。私はいくつかのフォーラムでWindows megapackのバイナリがQtをサポートしていないことを読んだので、自分自身でopencvをビルドしなければならない。
- CMake(2.8)の最新バージョンをダウンロードした。
- 私はここからOpenCVのソースをダウンロード:http://code.opencv.org/svn/opencv/branches/2.3/
- を私が持っていたのQtのバージョン(4.6.3)
- のソースをダウンロードし、私は私が作成したのVisual Studioの私の古いバージョン2005
- を見つけましたQtのサポートをチェックしているCMakeとのVS2005プロジェクト。 (チェック)
- 私はVS2005でopencvをビルドしました。ほとんどのライブラリを作成しましたが、すべてではありません。
Highgui
は失敗したものの1つです。問題:Qt\4.6.3\src\corelib\global\qconfig.h
が見つかりませんでした。私がダウンロードしたソースには全くqconfig.h
はありませんでした!テンプレートqconfig-large.h
、qconfig-small.h
などが見つかりましたので、そのうちの1つをqconfig.h
に改名しました。今、私はリンカーのエラーでいっぱいの画面を得ました。 - 代わりに最新のQtソースをダウンロードしました(4.8.1)。今すぐ見つけられない
QtTest/qbenchmarkmetric.h
を含むソースファイルqbenchmark.h
があります。 - 私はあきらめて、MinGWを試しました。
- 私はMinGWのメイクファイルを生成するにCMakeを設定し、私は次のエラー得た最新のMinGW(2011年11月18日)
- をダウンロード:
を。
CMake Error at C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-g++.cmake:1 (INCLUDE):
include could not find load file:
C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-gcc.cmake
Call Stack (most recent call first):
C:/Program Files/CMake 2.8/share/cmake-2.8/Modules/CMakeCXXInformation.cmake:59 (INCLUDE)
真は、モジュール/プラットフォームのディレクトリにWindows-g++.cmake
ファイルがあるが、それは存在しませんWindows-gcc.cmake
を参照します!
WindowsでQtをサポートするopencvをビルドしてくれた人はいますか?
編集:
問題はQtのソースに間違いです。私はMinGWメークファイルを生成することができました。QtCore/qelapsedtimer.h
のファイルが全く別のディレクトリにあるので、src/testlib/qtestsystem.h
に停止するまで、ビルドはすべてOKになりました! Qtは不完全なソース、をリリースしていますか、何か問題がありましたか?
EDIT2
私の苦しみは続きます。私はすべてをきれいにして始めました。今回はVisual Studioを試してみません。
- 私は私が成功したMakefileを作成し、MinGWのとそれを建てCMakeのでは最新のMinGW(2011年11月18日)
- をダウンロードしたソースと、最新のQt LIBS(4.8.1)
- をダウンロードしました。私は輝く新しいライブラリ(
libopencv_core231
、etv。)を手に入れました。私はとても幸せでしたが、すぐにそれを祝うのは間違っていました!! - 私は最新のQt SDKをダウンロードしました(間違いなく4.8.0だったので、4.8.1を使用するようにQt Creatorを設定しました)、opencvのないテストプログラムを作成して動作するかどうかを確認しました。出来た!
- 私はopencvを使って、画像を読み込んで表示してみました。それはうまくいかなかった。
exited with code -1073741511
- Qt Creatorの外で
.exe
を直接実行しようとしました。それは不足の文句を言いましたlibstdc++-6.dll
- 私はそれを検索し、私のMinGWインストール(c:\ mingw \ bin、958 KB)と私のQtインストール(c:\ qt \ mingw \ bin 、793 KB) - このmingwはQtにバンドルされています。
- 私は
.exe
と同じフォルダにコピーしてみましたが、どちらもうまくいきませんでした。私は "プロシージャエントリポイント_ZNSt9exceptionD2EvはダイナミックリンクライブラリlibstdC++ - 6.dllにありませんでした。両方と。これはデバッグされていたので、私はリリースしようとしましたが、似たようなエラーが出て、他のエントリポイントが見つかりませんでした。 - フォーラムを検索したところ、libstdC++を静的にリンクする必要があることがわかりました。私はファイル
c:\Qt\mkspecs\win32-g++\qmake.conf
のQMAKE_LFLAGS =
とQMAKE_LFLAGS_DEBUG =
の行に-static-libgcc -static-libstdc++
を挿入しました。 Qt Creatorを再起動して再構築しても、これはまったく効果がありませんでした。libstdc++-6.dll
をコピーしていない場合でも、まだそれが必要です。もちろん
、OpenCVのなしの私の簡単なテストプログラムは、任意のlibstdc++-6.dll
を必要とせずにexe
から実行されるので、それは私のOpenCVのビルドは責任であることを意味?私はopencvを新たにビルドしたかったのですが、libstdC++を参照するCMake設定は見つかりませんでした! libstdc++-6.dll
ファイルのいずれかを使用して、不足しているエントリポイントに関するエラーがQtGui4.dllに言及:
それは手掛かりかもしれません。私はデバッグビルドを持っているので、QtGui * d * 4.dllにすべきですか?デバッグとリリースに異なるlibstdc++
がありますか?いずれにせよ、リリースをビルドしようとしましたが、同じエラーが発生しました
QtCreatorとQtをWindows XP上で一緒に使ってみて成功した人はいませんか?すべてのフォーラムとQtのアーカイブを検索すると、誰も見つかりませんでした。私はLinuxで開発を行う準備ができていますが、とにかく遅かれ早かれWindowsのリリースが必要になります。
私はQtの、MinGWの、G ++、OpenCVのを忘れると一緒にVisual Basicで何かをハックしようとする私の耳にささやくダークサイドの誘惑に抵抗しようとしています。ああ、恐怖!
私はそれをよく理解していません。Qt互換のopencvを構築するためには、特定のQtライブラリが必要ですか?問題は、Qt 4.6.3と4.8.1の両方で、公式のQtサイトからダウンロードしたソース保管所には存在しないヘッダーが含まれていることでした。 – vsz
MinGWソリューションもOKですが、問題は似ています:ファイルがありません。以前はMinGWを使用していなかったので、 'Windows-gcc.cmake'がどのように見えるのか分かりません。 – vsz
私は自分が何をしたかしか記述できません。 OpenCV、Qtライブラリ(SDKではなく、特にVS用)とVS 2008(それ以前は2005年)を使用しました。私はそれに遭遇したことがないので、なぜファイルの欠落の問題があるのか分かりません。私もSDKを試したことはありません、mingwを試したことはありません。私が指摘したように、OpenCVをQtサポート付きで、そしてQtサポートなしでビルドしようとしましたか?あなたはQtプロジェクトにバグレポートを提出することを検討するかもしれません。 – ypnos