Gå til innhold

PRogram kan ikke starte pga .dll filer mangler


Anbefalte innlegg

Hei,

har laget en GUI applikasjon i QT som jeg ikke får til å kjøre på egenhånd (standalone). Får beskjed at .dll filer mangler. Når jeg finner den filen som mangler, er det en annen fil som mangler og slik holder det på. Til informasjon har jeg lagt inn alle filene fra qt mappen (mingw\bin).

 

Noen som kan hjelpe?

Lenke til kommentar
Videoannonse
Annonse
Gjest Gjest slettet-ld9eg7s96q

Hvilken QT versjon er det du kjører?

 

Last ned http://www.dependencywalker.com/ Denne hendige lille dingsen forteller deg akkurat hvilke .dll biblioteker du trenger å bundle med applikasjonen din. Standard QT er konfigurert til å bygge applikasjoner som benytter delte biblioteker. Det vil si at du trenger å bundle alle .dll filer fra biblioteker du benyttet da du programmerte applikasjonen din.

 

For eksempel, jeg har programmert et program som avhenger av QtGui, QNetwork og QXML, dette er filstrukturen for applikasjonen min:

 

icudt49.dll
icuin49.dll
icuuc49.dll
libEGL.dll
libgcc_s_sjlj-1.dll
libGLESv2.dll
libstdc++-6.dll
libwinpthread-1.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Network.dll
Qt5Widgets.dll
Qt5Xml.dll
sbclient.exe

 

I den samme katalogen må du ha en underkatalog kalt "platforms", her har jeg

 

qminimal.dll
qwindows.dll

 

Se om dette hjelper.

 

Merk: Dette er for QT versjon > 5

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar

Takker for supert svar. Qt versjon er mindre enn 5 (4.7).

Jeg kjørte dependency, jeg fikk en error når jeg lastet inn exe filen (erroren var: errors were detected when processing

c\users\desktop\mappe\debug\test.exe

see the log windows for detail.). Ellers står det følgende:

 

xcopk6.png

 

What to do ?

Er det de 5.dll filene med gult <<?>>som mangler?

Endret av spelley
Lenke til kommentar

Takker for hjelp. Bygget som release og har lagt til alle dll filene som depends sier mangler. No får jeg følgende feilmelding når jeg kjører applikasjonen: The procedure entry point ?begin@QListData@@QBEPAPAXXZ could not be located in the dynamic libary QtCore4.dll.

Finner ikke så mye fornuftig når jeg googler det.

 

Ellers er det verdt å nevne at depends sier følgende til meg:

 

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

Error: Modules with different CPU types were found.

Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

 

Jeg har jobbet en del med applikasjonen på skolen, og det har gått med en god del dager på dette prosjektet.

Endret av spelley
Lenke til kommentar

Det kan jeg vettu:

 

Test.pro:

QT += sql
SOURCES += \
   main.cpp \
   qcustomplot.cpp \
   querybuilder.cpp \
   mainwindow.cpp \
   graph.cpp
HEADERS += \
   qcustomplot.h \
   querybuilder.h \
   mainwindow.h \
   graph.h

 

Jeg har følgende .dll filer:

 

30acoix.png

 

Tusen takk for all hjelp hittil!

Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Legg til QT += core i pro fila di og det burde løse problemet

 

edit: ved nærmere ettertanke må du ha QT += gui der også

 

edit2: Du trenger ikke msvc dll filene i og med at du bruker mingw compileren :p

 

edit3: Husk å bygg applikasjonen din om igjen etter at du har redigert .pro fila

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar

Hei,

takk for hjelp nok en gang.

jeg har lagt til QT +=core og bygget (release) programmet på nytt. Får samme melding:

The procedure entry point ?begin@QListData@@QBEPAPAXXZ could not be located in the dynamic libary QtCore4.dll.

 

 

og dependency walker sier det samme:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

Error: Modules with different CPU types were found.

Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Endret av spelley
Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Det er fordi du har lagt til debug dll filene istedefor release dll filene i programmappa di. F.eks istedefor qtgui4d.dll skal du inkludere qtgui4.dll

Lenke til kommentar

hei, hadde helt glemt et middagsbesøk jeg skulle i :)

takk for all hjelp hittil.

Slik ser .pro filen ut:

QT += sql
QT += gui
QT += core

 

videre har jeg releaset programmet på nytt og lagt til kun relevante .dll filer (ikke noen debug).

 

Jeg opplever samme feilmelding som tidligere:

 

The procedure entry point ?begin@QListData@@QBEPAPAXXZ could not be located in the dynamic libary QtCore4.dll.

Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Jeg tror kanskje jeg vet hva som er problemet her. Når du kopierer dll filene fra katalogen du har installert QT fra, kopierer du de fra QT\[etellerannetnummer]\bin eller QT\[etellerannetnummer]\Qt\Bin ?

 

Forskjellen er at i den første stien ligger dll filene som var kompilert og linket via microsofts kompilator, du bruker mingw, så sørg for at dll filene du bundler med programmet ditt stammer fra den siste stien.

 

Funker det nå?

Lenke til kommentar

Hei, i utgangspunktet har jeg kopiert filene fra: QT\[etellerannetnummer]\bin. Jeg finner ikke: QT\[etellerannetnummer]\Qt\Bin

 

En ting som absolutt er verdt å nevne er at det er noen .dll filer jeg har måtte finne på nettet da det ikke la i bin mappen...

Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Det ville jeg vært forsiktig med, det er aldri en god ide å laste ned dll filer direkte fra nettet. Alle dll filene du trenger skal ligge i filsystemet ditt et sted.

 

Hvis jeg var deg ville jeg lastet ned den seneste versjonen av QT, rekompilert programmet ditt i release og prøve der. Du trenger da alle filene jeg listet opp i min første post, husk også qminimal.dll og qwindows.dll under "platforms".

 

QT versjonen du bruker ble kompilert med microsofts kompilator, men du bruker mingw kompilator for å bygge applikasjonene dine. Dll filene du kopierer til programmappen din er de dll filene QT trenger for å fungere, men de vil ikke fungere med de programmene du kompilerer. Dll filene du trenger skal ligge et sted under katalogen du installerte QT (jeg mener å huske det var QT\[Etellerannetnummer]\Qt\Bin men det er en liten stund siden jeg brukte versjon ~4 (har hukommelse som en gullfisk) :mellow:

 

edit: alternativt kan du konfigurere QT til å bruke microsofts kompilator. Du må da ha MSVC installert

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar

liten update. Har gitt litt opp å laste ned qt, sitter på fjellet og har 3g (gratis ut måneden), men det tar så sabla lang tid.

Har dog Visual studio 2012 installert på PCen fra før av. Så da er spørsmålet: Hvordan konfigurerer jeg QT til å bruke M$ kompilator?

Lenke til kommentar

Det er ikke QT du må konfigurere, det er VC++.

 

I egenskapene til prosjektet legger du til lib mappen til til QT etter ønsket prosessor i Linker instillingene under Library Directories eller hva det enn nå heter.

Legg til .lib filene i Additional Libraries.

 

I C/C++ legger du til include mappene i Additional Include Directories.

 

Derifra burde det være tut og kjør.

Lenke til kommentar

Det er ikke QT du må konfigurere, det er VC++.

 

I egenskapene til prosjektet legger du til lib mappen til til QT etter ønsket prosessor i Linker instillingene under Library Directories eller hva det enn nå heter.

Legg til .lib filene i Additional Libraries.

 

I C/C++ legger du til include mappene i Additional Include Directories.

 

Derifra burde det være tut og kjør.

takker! Der datt jeg dessverre helt ut, finnes det noen steg-for-steg guide for å gjøre dette? Finner det ikke =/

Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Det GeirGrusom sikter til er vel hvis du skal bruke QT innenfor visual studio miljøet noe du også kan gjøre men det er vel bedre å bruke QT's IDE og microsofts kompilator.

 

QT creator > tools > options > build and run > kits

 

Herfra kan du spesifisere og sette opp kompilatoren. Hvis ikke microsofts kompilator blir oppdaget her bør du sørge for å forsikre deg om at den befinner seg i path'en din (cl.exe hvis jeg ikke husker feil).

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...