Точка входа в DLL не найдена Qt 5.6 с OpenCV 3.0.0

У меня возникает ошибка при запуске простого приложения OpenCV внутри QtCreator. Прежде всего: я использую 64-битную версию MSVC2013, самостоятельно собираю Qt5.6 и OpenCV3.0.0 с помощью Cuda и Qt. Я протестировал сборку внутри 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)

Я могу построить проект, но я не могу его запустить. Как я уже сказал, я могу собрать и запустить одно и то же приложение в IDE MSVC2013 без каких-либо ошибок. Я искал в Интернете, но похоже, что я единственный с этой проблемой.

Вот мой код .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 64bit, Qt5.6 и OpenCV3.0.0 (собственная сборка)

Поскольку я уверен, что сборка OpenCV и Qt верна, я сам подозреваю ошибку. Но я понятия не имею, что я делаю неправильно. Достаточно интересно, что я могу показать изображение через Mat, поместить его в QImage и показать на этикетке через Pixmap. Но я хочу знать, почему cv::namedWindow не работает.

Также я заметил в другом потоке, что мне нужно построить статический Qt. MSVC2013 — точка входа не найдена

Это путь?

РЕДАКТИРОВАТЬ: Теперь все стало интереснее. На самом деле я могу запустить сборку программы с помощью qt из-за пределов QtCreator (просто запустив .exe из проводника). Так что я уверен, что все в порядке. Однако при запуске приложения должна возникнуть проблема с QtCreator. Есть мысли по этому поводу?


person Oerdy    schedule 06.10.2015    source источник


Ответы (1)


Я нашел проблему и хочу поделиться ею с вами, если кто-то столкнется с той же проблемой.

Я изменил на вкладке «Проекты» в рабочей среде рабочую среду с «среда сборки» на «Системная среда» (полагаю, это английское название, поскольку моя среда IDE — немецкая). Теперь я могу запускать приложение из IDE, и я доволен.

Я не нашел, где именно проблема, но пока я доволен.

person Oerdy    schedule 06.10.2015