Най-вероятно не успява да свърже динамично qsqlpsql.dll
файл, когато извиква LoadLibrary
върху него, след като вашата програма поиска този драйвер. LoadLibrary
връща същия код за грешка, когато целевата DLL липсва, както и когато една от DLL, от която зависи целевата DLL, липсва или не може да бъде заредена . Така че е възможно Qt да получи грешка „библиотеката не е намерена“ и да приеме, че „о, драйверът на Pg не трябва да е в тази компилация на Qt“, където всъщност присъства и не успява да се зареди поради проблеми със зависимостите, проблеми със съвместимостта на библиотеката и т.н.
За да определите защо не успява да се зареди, можете, както предложи Франк Остерфелд, да използвате инструмент като Dependency Walker (depends.exe
)
. Ако компилирате 32-битов код на 64-битова машина, искате да получите 32-битов инструмент за разходка на зависимости.
Много вероятно е да се провали, защото има зависимост от qsqlpsql.dll
липсва - или libpq.dll
, или една от библиотеките, които libpq
изграждане изисква. Dependency Walker ще ви помогне да изолирате това. Възможно е също така да се опитвате да заредите 64-битов libpq.dll
в 32-битова програма или обратното.
Може също да намерите за информативно да стартирате програмата си с проследяване на Process Monitor. Това ще доведе до много подробности за това кои файлове се опитва да отвори/провери, наред с други неща, и може да помогне за проследяване на неща като неочакван PATH
проблеми.
Ако все още сте блокирани, винаги има опция да преминете през програмата за отстраняване на грешки.