C++ QtCreator和OpenCV

C++ QtCreator和OpenCV,c++,opencv,qt-creator,C++,Opencv,Qt Creator,我成功地编译了使用OpenCV和QtCreator的程序,但当我试图执行我的应用程序时,DLL出现了问题 这就是我得到的错误。最糟糕的是我的系统中没有这个dll。 我试图下载它并将其与可执行文件放在同一个目录中,但我得到了相同的错误 这是我的.pro文件 LIBS += -Lc:/Users/Libraries/OpenCV2.3/build/x86/mingw/bin/ LIBS += -lopencv_calib3d230 \ -lopencv_contrib230\

我成功地编译了使用OpenCV和QtCreator的程序,但当我试图执行我的应用程序时,DLL出现了问题

这就是我得到的错误。最糟糕的是我的系统中没有这个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

有人知道为什么会出现此问题吗?

您是否尝试过,而不是简单地将dll放在文件夹中,将其添加到系统的路径中

在win XP上,它类似于:
配置面板>系统>高级>路径下载版本化的DLL可能无法工作。libstdc++-6.dll应该位于MinGW安装的bin目录中(可能是QtCreator附带的,请检查)


您必须将此dll与应用程序一起分发(或链接到
-static
),或至少将其目录添加到PATH。

我发现了问题所在。 我再次编译了opencv,并将.pro文件更改为该文件夹中的链接

与为windows提供的opencv superpack包链接导致了此问题


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

我找到了可以使用
QMAKE_cxflags+=-static的地方,但结果是一样的。我已经下载了超级包,其中已经构建了DLL。这件事能对这个问题负责吗?如果它们是用msvc构建的,我认为它们不应该和mingw一起工作。如果你是静态的,那么所有东西都需要是静态的(与运行库关联)。只需发送DLL,没有问题。将libstdc++DLL复制到应用程序所在的同一目录中,然后进行复制。我已经再次安装了sdk,现在我有了这个DLL。我将dll复制到了exe所在的文件夹中,但出现了相同的错误。如果您能提供一个在win32上使用mingw和MSYSA安装此dll的演练,我将不胜感激。您是否面临相同的问题?对我来说,解决办法是直截了当的。我必须从源代码处编译opencv,因为我的编译器版本与超级包提供的dll不一样。如果您使用的是QtCreator,那么只需使用第一篇文章中的.pro文件即可。这是一个很好的提示,我在那里没有看到.pro文件。然而,我帮助自己制作了一些cmake,下面是对未来感兴趣的人的成功故事: