2011-08-07 48 views
0

我设法编译使用OpenCV与QtCreator成功的程序,但我有一个问题,当我尝试执行我的应用程序的DLL。QtCreator和OpenCV

enter image description here

这是错误我得到。奇怪的是,我没有这个DLL在我的系统中。 我试图下载它,并将其与可执行文件放在同一个目录中,但我得到了同样的错误。

这里是我的.pro文件

LIBS += -Lc:/Users/Libraries/OpenCV2.3/build/x86/mingw/bin/ 

LIBS += -lopencv_calib3d230 \ 
     -lopencv_contrib230\ 
     -lopencv_core230 \ 
     -lopencv_features2d230 \ 
     -lopencv_flann230 \ 
     -lopencv_gpu230 \ 
     -lopencv_highgui230 \ 
     -lopencv_imgproc230 \ 
     -lopencv_legacy230 \ 
     -lopencv_ml230 \ 
     -lopencv_objdetect230 \ 
     -lopencv_video230 

INCLUDEPATH += c:/Users/Libraries/OpenCV2.3/build/include/ 

SOURCES += \ 
    main.cpp 

任何人都知道为什么会出现这个问题呢?

回答

1

我发现哪里出了问题。 我再次编译opencv并将我的.pro文件更改为从该文件夹链接。

与为Windows提供的opencv-superpack软件包链接导致此问题。

我希望这会帮助其他人面临同样的问题。

+1

如果你能提供一个在mingw和msys的win32上进行安装的演练,我将不胜感激 – nurettin

+1

你是否面临同样的问题?对我来说,解决方案非常简单。我不得不从源代码编译opencv,因为我的编译器版本与提供给superpack的dll不一样。如果您使用的是QtCreator,只需使用第一篇文章中的.pro文件即可。 – kechapito

+0

这是一个很棒的提示,我没有在那里看到.pro文件。然而,我帮助自己进入了一些cmake,对于任何对未来感兴趣的人来说,这是成功的故事:http://voidpage.blogspot.com/2011/09/building-opencv-on-win32-with-mingw-and.html – nurettin

0

你尝试,而不是简单地把DLL的文件夹中,将其添加到您的系统的路径?

在Win XP是这样的: 配置面板>系统>高级>路径

0

下载一个版本的DLL可能不会工作。 libstdC++ - 6.dll应该位于MinGW安装的bin目录中(可能包含在QtCreator中,请在那里查看)。

你必须与你的应用程序分发此DLL(或链路与-static)或至少其目录添加到PATH。

+0

我发现某处我可以使用'QMAKE_CXXFLAGS + = -static',但结果是一样的。我已经下载了这个已经构建好的dll的超级包。这件事可以对这个问题负责吗?如果他们是用msvc构建的,我不认为他们应该使用mingw。 – kechapito

+0

如果你要静态,所有东西都需要是静态的(与运行时库相关)。只是运送DLL,没有错。将libstdC++ DLL复制到您的应用程序所在的同一目录中,然后快速启动。 – rubenvb

+0

我已经安装了sdk,现在我有了这个dll。我将dll复制到exe文件夹,我得到相同的错误。 – kechapito