2010-08-03 13 views
6

Sto codificando un progetto C++ con Qt Creator. Tutto funziona perfettamente (debug, release), ma quando eseguo direttamente il file .exe compilato (vai al file exe ed eseguilo) dice che manca mingwm10.dll.Mancante mingwm10.dll

Cosa posso fare per questo problema?

risposta

6

Ecco cosa si potrebbe fare:

  • come Chalup detto, si posiziona directory bin MINGW a voi variabile locale/globale PATH così: Risorse del computer | proprietà di sistema | Advenced | Variabili d'ambiente | Variabili di sistema - selezionare la stringa PATH e premere il tasto Modifica. Dopo apparso finestra di dialogo, aggiungere qualcosa di simile - C: \ MinGW \ bin

  • edificare app senza MinGW, ad esempio con Qt libraries 4.6.3 for Windows (VS 2008, 194 MB)

  • Basta posizionare mingwm10.dll nella directory con il file eseguibile

+0

Se usiamo quel file exe in un altro sistema senza installare qt, la prima volta chiediamo a mingw10.dll.if che lo copiamo nella directory, esso chiederà altri file dll. Se copiamo tutti i file dll dipendenti, mostra un messaggio di errore. come risolvere questo errore senza installare qt andmingw? altrimenti il ​​nostro programma dipenderà da mingw. –

+0

@KIRAN È possibile creare file EXE statici (con librerie Qt e mingw all'interno) (ciò aumenterà la dimensione base dell'EXE, ma non saranno più necessarie altre DLL) oppure è possibile creare un file EXE statico (Qt statico senza supporto mingw - questo significa che quando costruisci una libreria Qt statica con i metodi 'configure' e' make', ma devi impostare flag 'configure -no-exceptions ...' - Non sono sicuro - meglio controllare questo) – mosg

+0

ha fatto vuoi dire nel file .pro? Se sì, come aggiungere no-exeption? ........ GRAZIE –

2

È necessario aggiungere il percorso di mingwm10.dll alla variabile PATH dell'ambiente.

+0

dove? ........... – Snoob

+0

Non conosco il percorso dalla cima della mia testa, ma è da qualche parte all'interno dell'installazione dell'SDK, ad es. $ QTDIR/MinGW/lib. Vorrei cercarlo in explorer e quindi copiarlo accanto all'exe. Per la distribuzione, inserire la DLL nelle DLL di Qt spedite. –

+1

Giusto per essere più precisi: l'ho trovato in "C: \ Qt \ 2010.02.1 \ qt \ bin \ mingwm10.dll' sul mio computer. – ereOn

1

Se si utilizza Qt come LGPL, si dovrebbe accettare meglio un paio di DLL con il tuo EXE. Non è poi così male, in realtà. Altrimenti sei libero di compilare Qt come libreria statica o di usare compilatori Microsoft. La rimozione di "-mthreads" in tutti i makefile può aiutare, non è vero, soprattutto se si usano eccezioni tra i thread.

Problemi correlati