2013-05-07 13 views
6

Sto usando Qt5 con Qt Creator.Qt5Widgets.dll è mancante?

Il mio programma funziona bene se lo lancio da Qt Creator in sé, ma se provo a eseguire il file .exe dalla cartella debug o release, mi limito a un errore:

The program can't start because Qt5Widgets.dll is missing from your computer. 
Try reinstalling the program to fix this problem. 

I' Sono nuovo a Qt e non ho idea di cosa sta causando questo, non ho trovato risultati decenti da Google. Ho già provato a reinstallare Qt5 (incluso il creatore) ma non è stato di aiuto.


Il mio file .proj si presenta così:

TEMPLATE = app 
TARGET = test 

QT += \ 
    core \ 
    gui \ 
    widgets \ 

SOURCES += \ 
    main.cpp 

E il mio main.cpp assomiglia a questo:

#include <QApplication> 
#include <QWidget> 

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 
    QWidget window(); 
    window.show(); 
    return app.exec(); 
} 

E questo è tutto il codice che ho.

risposta

1

Quando si avvia un'applicazione creata con Qt, è necessario disporre di tutte le DLL richieste dai moduli Qt utilizzati nel codice (Qt5Widgets.dll, Qt5Core .dll, ecc.) nella stessa cartella dell'applicazione.

Non è possibile utilizzare addLibraryPath() per questo scopo, poiché è necessario eseguire il programma prima di eseguire questo metodo. E non può essere eseguito se non trova la libreria obbligatoria nella stessa cartella.

Sono necessarie anche altre librerie per eseguire un programma Qt5 in base ai moduli utilizzati. Quelli specifici di Windows sono elencati qui Statically linked app with QT gives error: Failed to load platform plugin "windows".

Potrebbe anche essere necessario disporre di altre librerie: - plugins/qjpeg.dll, ecc. Se si desidera caricare i file di immagini nella GUI. - sqldrivers/qsqlite.dll, ecc. Se si utilizza il database (sono necessari solo i driver utilizzati) Per questi, è possibile utilizzare addLibraryPath() per configurare posizioni specifiche, ma è necessario evitare questo e provare il più possibile per mettere direttamente nella sottocartella destra vicino alla tua applicazione.

Troverai alcune informazioni sulle librerie necessarie per ciascun modulo Qt5 sul web. Puoi anche guardare nei tuoi programmi preferiti installare le cartelle per vedere quali librerie sono necessarie per loro.

1

spero la seguente vi aiuterà a capire il motivo per cui: http://doc.qt.io/qt-5/deployment.html

+0

Grazie per la risposta, questa sembra essere la soluzione. Tuttavia, quale percorso dovrei usare per 'addLibraryPath()'? Ho ottenuto due file 'Qt5Widgets.dll' diversi, che si trovano nelle seguenti directory:' C: \ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin' e 'C: \ Qt \ Qt5.0.2 \ Tools \ QtCreator \ bin'. –

+0

Quando si configura il progetto, si punta su quale qt verrà utilizzato. Nel tuo caso, penso, è C: \ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin – AnatolyS

+0

il link conduce al così bello Errore 404. – BaldDude