Mest sandsynligt mislykkes det dynamisk at linke qsqlpsql.dll
fil, når den kalder LoadLibrary
på det efter dit program anmoder om den driver. LoadLibrary
returnerer den samme fejlkode, når mål-DLL'en mangler, som når en af de DLL'er, mål-DLL'en afhænger af mangler eller ikke kan indlæses . Så Qt får muligvis en "bibliotek ikke fundet"-fejl og antager "åh, Pg-driveren må ikke være i denne Qt-build", hvor den faktisk er til stede og ikke kan indlæses på grund af afhængighedsproblemer, bibliotekskompatibilitetsproblemer osv.
For at afgøre, hvorfor den ikke indlæses, kan du, som Frank Osterfeld foreslog, bruge et værktøj som Dependency Walker (depends.exe
)
. Hvis du kompilerer 32-bit kode på en 64-bit maskine, vil du have 32-bit afhængigheds-walker.
Det er meget sandsynligt, at det fejler, fordi der er en afhængighed af qsqlpsql.dll
mangler - enten libpq.dll
, eller et af de biblioteker, der libpq
bygge kræver. Dependency walker vil hjælpe med at isolere dette. Det er også muligt, at du forsøger at indlæse en 64-bit libpq.dll
i et 32-bit program eller omvendt.
Du kan også finde det informativt at køre dit program med Process Monitor, der sporer det. Dette vil producere en masse detaljer om, hvilke filer den forsøger at åbne / undersøge, blandt andet, og kan hjælpe med at spore ting som uventet PATH
problemer.
Hvis du stadig sidder fast, er der altid mulighed for at gå igennem med en debugger.