S největší pravděpodobností se nedaří dynamicky propojit qsqlpsql.dll
při vyvolání LoadLibrary
poté, co váš program požaduje tento ovladač. LoadLibrary
vrátí stejný chybový kód, když chybí cílová knihovna DLL, jako když jedna z knihoven DLL, na kterých cílová knihovna závisí, chybí nebo ji nelze načíst . Qt tedy dost možná dostane chybu „knihovna nenalezena“ a předpokládá „oh, ovladač Pg nesmí být v tomto sestavení Qt“, kde ve skutečnosti je přítomen a nenačte se kvůli problémům se závislostmi, problémy s kompatibilitou knihoven atd.
Chcete-li zjistit, proč se nedaří načíst, můžete, jak navrhl Frank Osterfeld, použít nástroj jako Dependency Walker (depends.exe
)
. Pokud kompilujete 32bitový kód na 64bitovém počítači, chcete získat 32bitový chodec závislostí.
Je docela pravděpodobné, že selže, protože existuje závislost qsqlpsql.dll
chybí - buď libpq.dll
, nebo jednu z knihoven, které libpq
stavba vyžaduje. Závislost walker to pomůže izolovat. Je také možné, že se pokoušíte načíst 64bitový libpq.dll
v 32bitovém programu nebo naopak.
Také pro vás může být informativní, když spustíte svůj program pomocí nástroje Process Monitor, který jej sleduje. To mimo jiné vytvoří mnoho podrobností o tom, které soubory se pokouší otevřít/prozkoumat, a může pomoci vystopovat věci, jako je neočekávaná PATH
problémy.
Pokud jste stále uvízli, vždy je zde možnost projít pomocí debuggeru.