Innanzitutto, grazie a tutti per aver contribuito alla comprensione del problema e a come risolverlo.
Ora, per risolvere questo problema è necessario leggere attentamente questo articolo, per capire prima qual è il problema e quindi come risolverlo. [Deploying a real Qt app – understanding more of Qt]
La conclusione In breve:
il motivo del problema è the path of the plugins that you used in your project
.
Il percorso predefinito per i plug-in utilizzati nel progetto è qt path folder
, ma quando l'ambiente di sviluppo qt non è installato sul computer, l'applicazione non verrà eseguita, poiché il valore predefinito path to plugins
è diretto a qt path folder
e questo è il problema.
Abbiamo bisogno di indirizzare/modificare il percorso dei plugin nella cartella dell'applicazione.
Esistono diversi modi per indirizzare/modificare il percorso. Citerò il modo in cui ho già provato e sono riuscito a risolvere il problema
C'è un metodo statico chiamato addLibraryPath(const QString & path), questo metodo Lo useremo per dirigere/modificare the plugins path
.
Esempio:
int main(int argc, char *argv[])
{
QApplication::addLibraryPath("pluginsFolder");
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
pluginsFolder
è la cartella che contiene tutti i plugin che hai usato nel progetto.
È inoltre possibile modificare
QApplication::addLibraryPath("pluginsFolder");
Per
QApplication::addLibraryPath(".");
Ciò significa che i plugin nella cartella principale non in sottodirectory denominata plugins
.
E non dimenticare di usare lo strumento windeployqt.exe
per distribuire il tuo progetto.
E infine, spero che questa breve spiegazione sia utile per chi segue me, che dovrà affrontare lo stesso problema.
Il supporto per Windows di Qt dipende da numerose DLL. Sfortunatamente, non ricordo dove ho trovato la lista. Utilizzando [Dependency Walker] (http://www.dependencywalker.com/) per visualizzare le dipendenze DLL o utilizzando [Process Monitor] (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx) per vedere potrebbe non essere di aiuto il caricamento delle richieste. –
Questa guida è ideale per dettagliare i problemi di distribuzione: http://www.tripleboot.org/?p=138. E in secondo luogo utilizzo Dependency Walker, o ancora meglio Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) –
@JoshKelley: Ho usato lo strumento 'Dipendenza Walker ', per favore vedere di nuovo la mia domanda. @AndrewDolby: per favore vedi di nuovo la mia domanda. –