Qt 上的 dlib Windows。程序意外结束

dlib on Qt Windows. The program has unexpectedly finished

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

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

还有这个(同样在 dlib root 中):

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_build\include"
LIBS += -L"D:\dlib_build\lib" -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 64 位版本的编译输出:

D:\dlib_build\include\dlib\config.h:19: Warning: C4005: DLIB_JPEG_SUPPORT

MSVC2015 64 位版本的运行时输出:

The program has unexpectedly finished... Exited with code -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_build\include"
LIBS += -L"D:\dlib_build\lib" -ldlib

无需重建示例和dlib。 -DDLIB_JPEG_SUPPORT 已删除,因为您有 C4005 警告。

你离成功还差一步!