2016-07-06 110 views
1

我尝试在Windows上的Qt项目中使用dlib。下载后我这样做的DLIB根:在Qt Windows上的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_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(); 
} 

MSVC2的编译输出015 64位版本:

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

运行时输出MSVC2015 64位版本:

该方案已完成意外与...代码已退出-1073741795

请注意,我这样做后, Windows重新安装,并在此之前,我得到绝对相同的问题。

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

+0

请发布完整的main(),你是否还从main返回任何东西? – Mikhail

+0

@Mikhail谢谢你的回应,现在我用full main()发布了完整的main.cpp。 –

+0

那么,你可以从main()中删除qt部分代码吗?对于最小可重现的例子似乎没有必要。还有你在用什么CPU? – Mikhail

回答

2

由于您没有看到异常输出 - 问题应该在/arch:AVX部分。可能是您的处理器不支持AVX指令。在64位模式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警告。

你是成功的一步!

+0

谢谢,我会检查它 –

+0

哇!最后它的作品!但是这有点奇怪,我以为我试过这个选项... 无论如何,多谢一次:) –