DLL入口点没有找到Qt 5.6与OpenCV 3.0.0

DLL entry point not found Qt 5.6 with OpenCV 3.0.0

本文关键字:OpenCV Qt 入口 DLL      更新时间:2023-10-16

我有一个恼人的错误,而运行一个简单的OpenCV应用程序在QtCreator。首先:我使用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 -入口点未找到

是这样吗?

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

我发现了这个问题,我想和大家分享一下,以防有人遇到同样的问题。

我在运行环境下的项目选项卡中将运行环境从"构建环境"更改为"系统环境"(我猜这是它的英文名称,因为我的IDE是德语)。现在我可以从IDE内部运行应用程序,我很高兴。

我还没有找到问题到底在哪里,但现在我很满意。