2016-07-06 14 views
1

Ich versuche, dlib in Qt-Projekt unter Windows zu verwenden. Ich tat dies in der DLIB Wurzel Nach dem Download:dlib auf Qt Windows. Das Programm ist unerwartet

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

Und diese (wieder in 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 

Meine .proDatei:

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(); 
} 

Kompilierungsausgang für MSVC2 015 64-Bit-Version:

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

Runtime Ausgabe für MSVC2015 64bit Release:

Das Programm ist ... unerwartet beendet mit Code -1073741795

Bitte Exited beachten Sie, dass ich das tat nach Windows-Neuinstallation, und davor habe ich absolut das gleiche Problem.

Wie kann ich das lösen oder wie kann ich dlib in Qt unter Windows verwenden?

+0

posten Sie bitte die komplette main(), auch haben Sie alles von Main zurückgegeben? – Mikhail

+0

@Mikhail danke für die Antwort, jetzt habe ich volle main.cpp mit vollem Haupt() gepostet. –

+0

Also, können Sie den qt Teilcode von main() entfernen? Es erscheint unnötig für ein minimal reproduzierbares Beispiel. Welche CPU benutzen Sie? – Mikhail

Antwort

2

Da Sie keine Ausnahme Ausgabe sehen - das Problem sollte in /arch: AVX Teil sein. Möglicherweise unterstützt Ihr Prozessor keine AVX-Anweisungen.

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 

Keine Notwendigkeit für den Wiederaufbau Beispiele und DLIB: In x64-Modus wird automatisch SSE2

diese .proDatei Versuchen aktiviert werden. -DDLIB_JPEG_SUPPORT wurde entfernt, weil Sie eine C4005-Warnung haben.

Sie sind ein Schritt vom Erfolg!

+0

Danke, ich werde es überprüfen –

+0

WOW! Endlich funktioniert es! Aber das ist ein bisschen seltsam, ich dachte, ich habe diese Option ausprobiert ... Wie auch immer, danke noch einmal :) –