2011-12-19 21 views
1

opencv(2.3.1)のライブラリをリンクする際に問題があり、解決方法が見つかりません。 mingwでqtCreatorを使用していて、あらかじめ構築されたvc10の動的libファイル。 だから、ここで私が今までやっていることです:QtCreatorと&OpenCvをリンクする

.PROファイル:

TEMPLATE = app 
INCLUDEPATH += "E:/opencv/build/include/" 
INCLUDEPATH += "E:/opencv/build/include/opencv/" 
INCLUDEPATH += "E:/opencv/build/include/opencv2/" 

INCLUDEPATH += $$PWD/../opencv/build/x86/vc10 
DEPENDPATH += $$PWD/../opencv/build/x86/vc10 

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_core231 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_core231d 
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_highgui231 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_highgui231d 
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_imgproc231 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_imgproc231d 
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_calib3d231 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_calib3d231d 
... 

を私はOpenCVのからのHighGUIのlibsを使用するアプリケーションをテストしてきたし、それがコンパイルされ、うまく働いたが、私がしようとすると、 cvPyrDown(imgproc_c.hから)を使用してコンパイルしますが、ライブラリを正しくロードできません。コードが-1073741515で "予期せず終了"します。 私はそれがなぜ..proファイルから見ることができるのか分かりません。imgprocのライブラリをhighguiのようにリンクしましたが、それでも動作しません!
提案がありますか?

編集

[OK]を、これが本当であるならば、私はまだ、なぜそれを説明することはできません...問題は、Visual Studioをgとは異なる命名規則を持つライブラリを作成することです++、それは動作しません理由ですhighgui libsで動作します..任意のアイデア?

答えて

0

Opencvのどのバージョンですか?最新の2.3を試して、プロジェクト全体のビルドシステムである.proファイルの代わりにCMakeを使うことをお勧めします。

次に、CMakeLists.txtにfile-> open-projectを入力するだけで、CMakeで例がどのように設定されているかを見ることができます。このであれば、それはそれはqtの作成者とよりよいプレーし、2)Windows上.PROがテストされていないかもしれないと建物かもしれないという理にかなっているように、

は、最新の、そして1)のHighGUIは、QTを使用しています。 CMakeのやむを得ない必要性は驚くことではないでしょう。

編集:ライブラリのCMakeLists.txtファイルを見てください....

# CMakeLists.txt for /modules/highgui 
#YV 
if (HAVE_QT) 
if (HAVE_QT_OPENGL) 
    set(QT_USE_QTOPENGL TRUE) 
endif() 
INCLUDE(${QT_USE_FILE}) 

SET(_RCCS_FILES src/window_QT.qrc) 
QT4_ADD_RESOURCES(_RCC_OUTFILES ${_RCCS_FILES}) 

SET(_MOC_HEADERS src/window_QT.h) 
QT4_WRAP_CPP(_MOC_OUTFILES ${_MOC_HEADERS}) 

set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY}) 
set(highgui_srcs ${highgui_srcs} src/window_QT.cpp ${_MOC_OUTFILES} ${_RCC_OUTFILES}) 
endif() 

if(WIN32) 
    if(NOT HAVE_QT) 
     set(highgui_srcs ${highgui_srcs} src/window_w32.cpp) 
    endif() 
    set(highgui_srcs ${highgui_srcs} src/cap_vfw.cpp src/cap_cmu.cpp src/cap_dshow.cpp) 
    if(HAVE_MIL) 

    set(highgui_srcs ${highgui_srcs} src/cap_mil.cpp) 
endif() 
endif() 

if(UNIX) 
if(NOT HAVE_QT)   
    if(HAVE_GTK) 
     set(highgui_srcs ${highgui_srcs} src/window_gtk.cpp) 
    endif() 
endif() 
.... 
endif() 

しかしが "imgproc" のCMakeLists.txtは、任意の特定のチェックを行いません...ただ渡しますメインOpenCVのLIBに降圧:

define_opencv_module(imgproc opencv_core) 
+0

私はOpenCVのの最新バージョン(2.3.1)を使用しています。ライブラリがmsvc(g ++以外の命名規則を使用しています)で構築されている場合、highguiがqtを使用するかどうかは本当に重要ですか?おそらく – elephantintheroom

+0

。あなたは本当にmingwでopencvを再構築する必要があります... qmakeではなく、cmakeを使用してください... OpenCVがテスト/開発されたものですので、qmakeを主張するならば、あなたは不必要な障害を抱えています。 –

1

MSVCバージョンのQtを使用してはなりませんか?

+0

いるMinGWがそれを処理することができるはずです。..(それはのHighGUI LIBSで動作します。) – elephantintheroom

関連する問題