使用OpenCV 3.0.0找不到Qt 5.6的DLL入口点

时间:2015-10-06 01:52:41

标签: c++ qt opencv qt-creator opencv3.0

在QtCreator中运行简单的OpenCV应用程序时出现了一个恼人的错误。首先:我使用的是MSVC2013 64位,我自己用Cuda和Qt构建Qt5.6和OpenCV3.0.0。我测试了MSVC2013内部的构建,它运行良好。 现在切换到QtCreator我将INCLUDEPATH和LIBS添加到普通的C ++项目中,保存.pro文件并运行qmake。工作。 现在我包括了highgui.hpp,core.hpp并编写了简单的图像加载和显示应用程序。见代码

#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    cv::Mat Image;
    cv::namedWindow("Test");
    return 0;
}

现在您想知道为什么我没有加载任何图片。好吧,我可以用cv :: namedWindow来追踪错误。 在我构建项目之后,我运行调试器,然后突然在单独的窗口中出现此错误:

The inferior stopped because it triggered an exception.
Stopped in thread 0 by: exception at 0x7ffa6f8dc4e0, code 0xc0000139:
DLL entry point not found, flags=0x1 (Execution cannot be continued)

我可以构建项目,但我无法运行它。正如我所说的,我可以在MSVC2013 IDE中构建和运行相同的应用程序而不会出现任何错误。我在网上搜索过,但似乎我是唯一有这个问题的人。

这是我的.pro代码

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

include(deployment.pri)
qtcAddDeployment()

INCLUDEPATH += C:\\OpenCV300C\\include \
    C:\\OpenCV300\\include\\opencv \
    C:\\OpenCV300\\\include \\opencv2

LIBS += -LC:\\OpenCV300\\x64\\vc12\\lib \
    -lopencv_calib3d300d \
    -lopencv_core300d \
    -lopencv_features2d300d \
    -lopencv_flann300d \
    -lopencv_hal300d \
    -lopencv_highgui300d \
    -lopencv_imgcodecs300d \
    -lopencv_imgproc300d \
    -lopencv_ml300d \
    -lopencv_objdetect300d \
    -lopencv_photo300d \
    -lopencv_shape300d \
    -lopencv_stitching300d \
    -lopencv_superres300d \
    -lopencv_ts300d \
    -lopencv_video300d \
    -lopencv_videoio300d \

我使用Win8.1,MSVC2013 64位,Qt5.6和OpenCV3.0.0(自己构建)

由于我确信OpenCV和Qt的构建是正确的,我自己怀疑是错误的。但我不知道我做错了什么。 有趣的是,我能够通过Mat显示图片并将其放入QImage并通过Pixmap在标签上显示。但我想知道,为什么cv :: namedWindow无效。

另外我在另一个帖子中注意到我必须构建Qt静态。 MSVC2013 - Entry Point Not Found

这是要走的路吗?

编辑: 现在事情开始变得有趣了。我实际上能够通过qt从QtCreator外部运行程序构建(只需从资源管理器运行.exe)。所以我很确定一切都很好。但是,在运行应用程序时,QtCreator必须存在问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我发现了问题,我希望与您分享此问题,以防有人遇到同样的问题。

我在“运行环境”下的“项目”标签中更改了“#34;构建环境&#34;到&#34;系统环境&#34; (我想这是英文名称,因为我的IDE是德语)。现在我可以从IDE内部运行App了,我很高兴。

我还没有找到问题的确切位置,但现在我很满意。