在Qt Windows上.节目意外地结束了

dlib on Qt Windows. The program has unexpectedly finished

本文关键字:意外 结束了 节目 Qt Windows      更新时间:2023-10-16

我尝试在Windows上的Qt项目中使用dlib。下载后,我在dlib根目录下做了这个:

cd examples
mkdir build
cd build
cmake .. -G"Visual Studio 14 2015 Win64" 
cmake --build . --config Release

和这个(再次在dlib根目录):

mkdir build
cd build
cmake .. -G"Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=D:dlib_build
cmake --build . --config Release --target install

我的。pro文件:

QT += core
QT -= gui
CONFIG += c++11
TARGET = dlibWin2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += "D:dlib_buildinclude"
LIBS += -L"D:dlib_buildlib" -ldlib
QMAKE_CXXFLAGS_RELEASE += /arch:AVX
QMAKE_CXXFLAGS += -DDLIB_JPEG_SUPPORT

main.cpp:

#include <QCoreApplication>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing/render_face_detections.h>
#include <dlib/image_processing.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <iostream>

using namespace dlib;
using namespace std;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    try
    {
        frontal_face_detector detector = get_frontal_face_detector();
    }
    catch (exception& e)
    {
        cout << "nexception thrown!" << endl;
        cout << e.what() << endl;
    }
    return a.exec();
}

MSVC2015 64bit编译输出版本:

D:dlib_buildincludedlibconfig.h:19: Warning: C4005: DLIB_JPEG_SUPPORT

MSVC2015 64位运行时输出:

程序意外结束…以代码-1073741795退出

请注意,我是在Windows重新安装后这样做的,在此之前我遇到了完全相同的问题。

我如何解决这个问题,或者我如何在Windows上使用Qt中的dlib ?

由于您没有看到异常输出-问题应该在/arch:AVX部分。可能是您的处理器不支持AVX指令。在x64模式下,SSE2将自动启用

试试这个.pro文件:

QT += core
QT -= gui
CONFIG += c++11
TARGET = dlibWin2
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += "D:dlib_buildinclude"
LIBS += -L"D:dlib_buildlib" -ldlib

不需要重新构建示例和dlib。-DDLIB_JPEG_SUPPORT被删除,因为你有C4005警告。

你离成功只有一步之遥了!