Najprawdopodobniej nie udaje się dynamicznie połączyć pliku qsqlpsql.dll
plik, gdy wywołuje LoadLibrary
na nim po tym, jak program zażąda tego sterownika. LoadLibrary
zwraca ten sam kod błędu w przypadku braku docelowej biblioteki DLL, jak w przypadku braku jednej z bibliotek DLL, od której zależy docelowa biblioteka DLL lub nie można jej załadować . Tak więc Qt prawdopodobnie otrzymuje błąd „nie znaleziono biblioteki” i zakłada „och, sterownik Pg nie może być w tej kompilacji Qt”, gdzie w rzeczywistości jest obecny i nie można go załadować z powodu problemów z zależnościami, problemów ze zgodnością bibliotek itp.
Aby ustalić, dlaczego się nie ładuje, możesz, zgodnie z sugestią Franka Osterfelda, użyć narzędzia takiego jak Dependency Walker (depends.exe
)
. Jeśli kompilujesz 32-bitowy kod na 64-bitowej maszynie, chcesz uzyskać 32-bitową walkę zależności.
Jest całkiem prawdopodobne, że zawiedzie, ponieważ istnieje zależność qsqlpsql.dll
brak - albo libpq.dll
lub jedną z bibliotek, które libpq
kompilacja wymaga. Walker zależności pomoże to wyizolować. Możliwe również, że próbujesz załadować 64-bitowy plik libpq.dll
w programie 32-bitowym lub odwrotnie.
Możesz również znaleźć informacje, aby uruchomić swój program za pomocą Monitora procesu, śledząc go. Spowoduje to, między innymi, wiele szczegółów na temat tego, które pliki próbuje otworzyć / zbadać, i może pomóc w śledzeniu takich rzeczy, jak nieoczekiwana PATH
problemy.
Jeśli nadal utkniesz, zawsze istnieje możliwość skorzystania z debugera.